home *** CD-ROM | disk | FTP | other *** search
/ BBS 1 / BBS#1.iso / document / pas60pg.lzh / PG16.MY < prev    next >
Text File  |  1991-02-04  |  28KB  |  686 lines

  1.                            ù Ç æ Æ £  3.
  2.  
  3.                        TURBO PASCAL éìôÆÉê.
  4.  
  5.                              âïÇéÇ 16.
  6.  
  7.                               ÅÇîƒÆ£.
  8.  
  9.      ¥Γá ú½áóá «»¿ßδóáÑΓ ó  ñÑΓá½∩σ  ß»«ß«íδ  ¿ß»«½∞º«óá¡¿∩  »á¼∩Γ¿
  10. »α«úαἼἿ ¡á Turbo Pascal.  îδ »«ß¼«Γα¿¼ ¬áαΓπ »á¼∩Γ¿ »α«úαá¼¼ ¡á
  11. Turbo Pascal,  ó¡πΓαÑ¡¡¿Ñ Σ«α¼áΓδ ñá¡¡δσ,  ¼«¡¿Γ«α  ¬πτ¿  ¿  »α∩¼«⌐
  12. ñ«ßΓπ» ¬ »á¼∩Γ¿.
  13.  
  14.  
  15.                     èáαΓá »á¼∩Γ¿ Turbo Pascal.
  16.  
  17.      É¿ß. 16.1 »αÑñßΓáó½∩ÑΓ αáß»αÑñѽѡ¿Ñ »á¼∩Γ¿ ñ½∩  »α«úαá¼¼δ  ¡á
  18. Turbo Pascal.
  19.      ÅαÑΣ¿¬ß ßÑú¼Ñ¡Γá »α«úαá¼¼δ (Program Segment Prefix  -  PSP)  -
  20. φΓ«   256-Γ¿   íá⌐Γ«óá∩   «í½áßΓ∞,  ß«ºñáóáѼá∩  DOS  »α¿  ºáúαπº¬Ñ
  21. »α«úαá¼¼δ. ÇñαÑß ßÑú¼Ñ¡Γá PSP σαá¡¿Γß∩ ó »ÑαѼѡ¡«⌐ PrefixSeg.
  22.      èáªñδ⌐ ¼«ñπ½∞ (¿ ú½áó¡á∩ »α«úαἼᠿ ¬áªñδ⌐ ¼«ñπ½∞) ¿¼ÑÑΓ ßó«⌐
  23. ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ. â½áó¡á∩ »α«úαἼᠺ᡿¼áÑΓ »Ñαóδ⌐ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ;
  24. ¬«ñ«óδÑ  ßÑú¼Ñ¡Γδ,  ¬«Γ«αδÑ  ß½ÑñπεΓ  ºá  ¡¿¼,  ºá¡¿¼áεΓ  ¼«ñπ½¿ (ó
  25. »«α∩ñ¬Ñ,  «íαáΓ¡«¼ Γ«¼π,  ¬á¬ «¡¿ ß½Ññ«ó὿ ó  «»ÑαáΓ«αÑ  uses),  ¿
  26. »«ß½Ññ¡¿⌐  ¬«ñ«óδ⌐  ßÑú¼Ñ¡Γ  ºá¡¿¼áÑΓ í¿í½¿«ΓѬá óαѼѡ¿ óδ»«½¡Ñ¡¿∩
  27. (¼«ñπ½∞ System). ÉẼÑα «ñ¡«ú« ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá ¡Ñ ¼«ªÑΓ »αÑóδΦáΓ∞
  28. 64è, ¡« «íΘ¿⌐ αẼÑα ¬«ñá «úαá¡¿τÑ¡ Γ«½∞¬« ¿¼ÑεΘÑ⌐ß∩ »á¼∩Γ∞ε.
  29.  
  30.           É¿ß. 16.1. Éáß»αÑñѽѡ¿Ñ »á¼∩Γ¿ ó Turbo Pascal.
  31.  
  32.                 éÑασ¡∩∩ úαá¡¿µá »á¼∩Γ¿ DOS
  33.  
  34.   HeapEnd   ──÷┌────────────────────────────┐
  35.                │                            │
  36.                │   ßó«í«ñ¡á∩ »á¼∩Γ∞         │
  37.                │                            │
  38.   HeapPtr   ──÷│............................│
  39.                │    ¬πτá (αáßΓÑΓ óóÑασ)     │
  40.   HeapOrg   ──÷├────────────────────────────┤≈──  OvrHeapEnd
  41.                │   «óÑα½Ñ⌐¡δ⌐ íπΣÑα         │
  42.                ├────────────────────────────┤≈──  OvrHeapOrg
  43.                │     ßΓѬ (αáßΓÑΓ ó¡¿º)     │
  44.   SSeg:SPtr ──÷│............................│
  45.                │   ßó«í«ñ¡δ⌐ ßΓѬ           │
  46.   SSeg:0000 ──÷├────────────────────────────┤
  47.                │   ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ    │
  48.                │............................│≈───────┐
  49.                │   Γ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ   │        │
  50.   DSeg:0000 ──÷├────────────────────────────┤        │
  51.                │   ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ          │        │
  52.                │    ¼«ñπ½∩ System           │        │
  53.                │............................│        │
  54.                │   ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ          │        │
  55.                │    »Ñαó«ú« ¼«ñπ½∩          │        │
  56.                │............................│        │
  57.                └────────────────────────────┘        │
  58.                .   ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ          .   ß«ñÑαªáΓ «íαáº
  59.                .   ñαπú¿σ   ¼«ñπ½Ñ⌐         .   .EXE  Σá⌐½á
  60.                ┌────────────────────────────┐        │
  61.                │............................│        │
  62.                │   ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ          │        │
  63.                │ »«ß½Ññ¡Ñú«  ¼«ñπ½∩         │        │
  64.                ├────────────────────────────┤        │
  65.                │   ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ          │        │
  66.                │  ú½áó¡«⌐ »α«úαá¼¼δ         │        │
  67.                ├────────────────────────────┤≈───────┘
  68.                │ »αÑΣ¿¬ß ßÑú¼Ñ¡Γá »α«úαá¼¼δ │
  69.                │        (PSP)               │
  70.   PrefixSeg ──÷└────────────────────────────┘
  71.                   ì¿ª¡∩∩ úαá¡¿µá »á¼∩Γ¿ DOS
  72.  
  73.  
  74.      æÑú¼Ñ¡Γ ñá¡¡δσ (áñαÑßπѼδ⌐ τÑαѺ DS) ß«ñÑαª¿Γ  óßÑ  ú½«íá½∞¡δÑ
  75. »ÑαѼѡ¡δÑ  ¿ ºáΓѼ óßÑ Γ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ.  ÉÑú¿ßΓα DS ¡¿¬«úñá
  76. ¡Ñ ¿º¼Ñ¡∩ÑΓß∩ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ. ÉẼÑα ßÑú¼Ñ¡Γá ñá¡¡δσ
  77. ¡Ñ ¼«ªÑΓ »αÑóδΦáΓ∞ 64è.
  78.      Åα¿ ºá»π߬Ѡ»α«úαá¼¼δ αÑú¿ßΓα ßÑú¼Ñ¡Γá ßΓѬá (SS)  ¿ π¬áºáΓѽ∞
  79. ßΓѬá (SP) πßΓá¡áó½¿óáεΓß∩ Γá¬,  τΓ« SS:SP π¬áºδóáÑΓ ¡á »Ñαóδ⌐ íá⌐Γ
  80. »«ß½Ñ ßÑú¼Ñ¡Γá ßΓѬá.  ÉÑú¿ßΓα SS ¡¿¬«úñá ¡Ñ  ¿º¼Ñ¡∩ÑΓß∩  ó«  óαѼ∩
  81. óδ»«½¡Ñ¡¿∩  »α«úαá¼¼δ,  á  SP  ¼«ªÑΓ  »ÑαÑñó¿úáΓ∞ß∩  ó¡¿º  »«¬á  ¡Ñ
  82. ñ«ßΓ¿ú¡ÑΓ ¬«¡µá  ßÑú¼Ñ¡Γá.  ÉẼÑα  ßΓѬ«ó«ú«  ßÑú¼Ñ¡Γá  ¡Ñ   ¼«ªÑΓ
  83. »αÑóδΦáΓ∞  64è;  αẼÑα  »« π¼«½τá¡¿ε - 16è,  «¡ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡
  84. ñ¿αÑ¬Γ¿ó«⌐ ¬«¼»¿½∩Γ«αá $M.
  85.      üπΣÑα «óÑα½ÑÑó  ¿ß»«½∞ºπÑΓß∩  ßΓá¡ñáαΓ¡δ¼  ¼«ñπ½Ñ¼ Overlay ñ½∩
  86. σαá¡Ñ¡¿∩ «óÑα½Ñ⌐¡«ú« ¬«ñá.  ÉẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá »«  π¼«½τá¡¿ε
  87. ß««ΓóÑΓßΓóπÑΓ  αẼÑαπ  ¡á¿í«½∞ΦÑú«  «óÑα½Ñ∩  ó  »α«úαá¼¼Ñ;  Ñß½¿ ó
  88. »α«úαἼѠ¡ÑΓ «óÑα½ÑÑó,  αẼÑα íπΣÑαá  «óÑα½ÑÑó  αáóÑ¡  0.  ÉẼÑα
  89. íπΣÑαá  «óÑα½ÑÑó  ¼«ªÑΓ  íδΓ∞  πóѽ¿τÑ¡  ß »«¼«Θ∞ε ó맮óá »α«úαá¼¼δ
  90. OvrSetBuf ¼«ñπ½∩ Overlay;  ó φΓ«¼ ß½πτáÑ αẼÑα ¬πτ¿ ß««ΓóÑΓßΓóÑ¡¡«
  91. π¼Ñ¡∞ΦáÑΓß∩, ß¼ÑΘÑ¡¿Ñ¼ óóÑασ HeapOrg.
  92.      èπτá σαá¡¿Γ  ñ¿¡á¼¿τÑ߬¿Ñ  »ÑαѼѡ¡δÑ,  Γ«  ÑßΓ∞   »ÑαѼѡ¡δÑ,
  93. αáß»αÑñѽѡ¡δÑ  τÑαѺ ó맮ó ßΓá¡ñáαΓ¡δσ »α«µÑñπα New ¿ GetMem. èπτá
  94. ºá¡¿¼áÑΓ óßε ¿½¿ τáßΓ∞ ßó«í«ñ¡«⌐ »á¼∩Γ¿,  «ßΓáóΦÑ⌐ß∩ »«ß½Ñ ºáúαπº¬¿
  95. »α«úαá¼¼δ.   öá¬Γ¿τÑ߬¿  αẼÑα  ¬πτ¿  ºáó¿ß¿Γ  «Γ  ¼¿¡¿¼á½∞¡«ú«  ¿
  96. ¼á¬ß¿¼á½∞¡«ú«  º¡áτÑ¡¿⌐  ¬πτ¿,  ¬«Γ«αδÑ  ¼«úπΓ   íδΓ∞   πßΓá¡«ó½Ñ¡δ
  97. ñ¿αÑ¬Γ¿ó«⌐  ¬«¼»¿½∩Γ«αá  $M.  ÉẼÑα  ¬πτ¿  ¡¿¬«úñá ¡Ñ íπñÑΓ ¼Ñ¡∞ΦÑ
  98. ¼¿¡¿¼á½∞¡«ú« º¡áτÑ¡¿∩ ¿ ¡Ñ »αÑóδß¿Γ ¼á¬ß¿¼á½∞¡«ú«.  àß½¿ ó  ß¿ßΓѼÑ
  99. ¡ÑΓ  »á¼∩Γ¿  αáó¡«ú«  ¼¿¡¿¼á½∞¡«¼π  º¡áτÑ¡¿ε,  »α«úαἼᠠ¡Ñ  íπñÑΓ
  100. óδ»«½¡∩Γ∞ß∩.  î¿¡¿¼á½∞¡«Ñ º¡áτÑ¡¿Ñ ¬πτ¿ »« π¼«½τá¡¿ε αáó¡« 0  íá⌐Γ,
  101. ¼á¬ß¿¼á½∞¡«Ñ  -  640è;  φΓ«  «º¡áτáÑΓ,  τΓ« »« π¼«½τá¡¿ε ¬πτá íπñÑΓ
  102. ºá¡¿¼áΓ∞ óßε «ßΓáóΦπεß∩ »á¼∩Γ∞.
  103.      ô»αáó½Ñ¡¿Ñ ¬πτÑ⌐  «ßπΘÑßΓó½∩ÑΓ  ¼«¡¿Γ«α ¬πτ¿ (¬«Γ«αδ⌐ ∩ó½∩ÑΓß∩
  104. τáßΓ∞ε í¿í½¿«ΓѬ¿ óαѼѡ¿ óδ»«½¡Ñ¡¿∩  Turbo  Pascal).  Ä¡  ñÑΓá½∞¡«
  105. «»¿ßá¡ ó ß½ÑñπεΘѼ αáºñѽÑ.
  106.  
  107.  
  108.                            î«¡¿Γ«α ¬πτ¿.
  109.  
  110.      èπτá ¿¼ÑÑΓ ßΓѬ«óπε  ßΓαπ¬Γπαπ,  αáßΓπΘπε  «Γ  ¡¿ª¡¿σ  áñαÑß«ó
  111. »á¼∩Γ¿  ó ßÑú¼Ñ¡ΓÑ ¬πτ¿.  ì¿ª¡∩∩ úαá¡¿µá ¬πτ¿ σαá¡¿Γß∩ ó »ÑαѼѡ¡«⌐
  112. HeapOrg,  á óÑαΦ¿¡á ¬πτ¿,  ß««ΓóÑΓßΓóπεΘá∩ ¡¿ª¡Ñ⌐ úαá¡¿µÑ ßó«í«ñ¡«⌐
  113. »á¼∩Γ¿,   σαá¡¿Γß∩   ó   »ÑαѼѡ¡«⌐   HeapPtr.  èáªñδ⌐  αáº,  ¬«úñá
  114. ñ¿¡á¼¿τÑ߬á∩ »ÑαѼѡ¡á∩  αáß»αÑñѽ∩ÑΓß∩  ó  ¬πτÑ  (τÑαѺ  New   ¿½¿
  115. GetMem),  ¼«¡¿Γ«α  ¬πτ¿  »ÑαÑñó¿úáÑΓ  HeapPtr  óóÑασ ¡á αẼÑα φΓ«⌐
  116. »ÑαѼѡ¡«⌐, ßΓáó∩ ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ «ñ¡π ºá ñαπú«⌐.
  117.      HeapPtr ¡«α¼á½¿ºπÑΓß∩   »«ß½Ñ  ¬áªñ«⌐  «»Ñαᵿ¿,  πßΓá¡áó½¿óá∩
  118. ß¼ÑΘÑ¡¿Ñ ó  ñ¿á»áº«¡Ñ  «Γ  $0000  ñ«  $000F.  îá¬ß¿¼á½∞¡δ⌐   αẼÑα
  119. »ÑαѼѡ¡«⌐, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ αáß»αÑñѽѡ ó ¬πτÑ, αáóÑ¡ 65519 íá⌐Γ
  120. ($10000 - $000F),  »«ß¬«½∞¬π  ¬áªñá∩  »ÑαѼѡ¡á∩  ñ«½ª¡á  »«½¡«ßΓ∞ε
  121. ¡áσ«ñ¿Γ∞ß∩ ó «ñ¡«¼ ßÑú¼Ñ¡ΓÑ.
  122.  
  123.  
  124.                        Äßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿.
  125.  
  126.      ä¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ, σαá¡∩Θ¿Ñß∩ ó ¬πτÑ, πñá½∩εΓß∩ «ñ¡¿¼ ¿º
  127. ñóπσ »πΓÑ⌐: (1) τÑαѺ Dispose ¿½¿ FreeMem (2) τÑαѺ Mark ¿ Release.
  128. Åα«ßΓÑ⌐Φ¿⌐ ß»«ß«í - φΓ« ß  Mark  ¿  Release,  Ñß½¿  í뫨  óδ»«½¡Ñ¡δ
  129. ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  130.  
  131.      New(Ptr1);
  132.      New(Ptr2);
  133.      Mark(P);
  134.      New(Ptr3);
  135.      New(Ptr4);
  136.      New(Ptr5);
  137.  
  138. ß«ßΓ«∩¡¿Ñ ¬πτ¿ íπñÑΓ Γᬿ¼, ¬á¬ ¡á α¿ßπ¡¬Ñ 16.2
  139.  
  140.       É¿ß.16.2: Äßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿ ß »«¼«Θ∞ε Mark ¿ Release.
  141.  
  142.  
  143.       Ptr1  ──÷┌──────────────────────────┐ ì¿ª¡∩∩ úαá¡¿µá »á¼∩Γ¿
  144.                │   ß«ñÑন¼«Ñ Ptr1^       │
  145.       Ptr2  ──÷├──────────────────────────┤
  146.                │   ß«ñÑন¼«Ñ Ptr2^       │
  147.       Ptr3  ──÷├──────────────────────────┤
  148.                │   ß«ñÑন¼«Ñ Ptr3^       │
  149.       Ptr4  ──÷├──────────────────────────┤
  150.                │   ß«ñÑন¼«Ñ Ptr4^       │
  151.       Ptr5  ──÷├──────────────────────────┤
  152.                │   ß«ñÑন¼«Ñ Ptr5^       │
  153.   HeapPtr   ──÷├──────────────────────────┤
  154.                │                          │ éÑασ¡∩∩ úαá¡¿µá
  155.   HeapEnd   ──÷└──────────────────────────┘ »á¼∩Γ¿
  156.  
  157.  
  158.      Ä»ÑαáΓ«α Mark(P)  »«¼ÑτáÑΓ ß«ßΓ«∩¡¿Ñ ¬πτ¿ »ÑαÑñ αáß»αÑñѽѡ¿Ñ¼
  159. Ptr3 (ß«σαá¡Ñ¡¿Ñ¼ ΓѬπΘÑú« HeapPtr ó P).  àß½¿  óδ»«½¡¿Γ∞  «»ÑαáΓ«α
  160. Release(P), Γ«   ß«ßΓ«∩¡¿Ñ   ¬πτ¿   ßΓá¡ÑΓ  ¬á¬  ¡á  α¿ßπ¡¬Ñ  16.3,
  161. φΣΣÑ¬Γ¿ó¡« «ßó«í«ªñá∩ óßÑ π¬áºáΓѽ¿,  αáß»αÑñѽѡ¡δÑ  »«ß½Ñ  ó맮óá
  162. Mark.
  163.  
  164.      É¿ß.16.3. Éáß»αÑñѽѡ¿Ñ ¬πτ¿ »«ß½Ñ óδ»«½¡Ñ¡¿∩ Release(P).
  165.  
  166.  
  167.       Ptr1  ──÷┌────────────────────────────┐ ì¿ª¡∩∩ úαá¡¿µá »á¼∩Γ¿
  168.                │   ß«ñÑন¼«Ñ Ptr1^         │
  169.       Ptr2  ──÷├────────────────────────────┤
  170.                │   ß«ñÑন¼«Ñ Ptr2^         │
  171.   HeapPtr   ──÷├────────────────────────────┤
  172.                │                            │
  173.                │                            │
  174.                │                            │ éÑασ¡∩∩ úαá¡¿µá
  175.   HeapEnd   ──÷└────────────────────────────┘ »á¼∩Γ¿
  176.  
  177.  
  178.      Åα¿¼Ñτá¡¿Ñ: éδ»«½¡Ñ¡¿Ñ  «»ÑαáΓ«αá  Release(HeapOrg)  »«½¡«ßΓ∞ε
  179. «τ¿ΘáÑΓ  óßε  ¬πτπ,  »«ß¬«½∞¬π  HeapOrg π¬áºδóáÑΓ ¡á ¡¿ª¡εε úαá¡¿µπ
  180. ¬πτ¿.
  181.      ä½∩ »α«úαá¼¼,  ¬«Γ«αδÑ «ßó«í«ªñáεΓ π¬áºáΓѽ¿ ó »«α∩ñ¬Ñ,  Γ«τ¡«
  182. «íαáΓ¡«¼ »«α∩ñ¬π ¿σ αáß»αÑñѽѡ¿∩,  »α«µÑñπαδ Mark ¿ Release  «τÑ¡∞
  183. φΣΣÑ¬Γ¿ó¡δ.  Äñ¡á¬« í«½∞Φ¿¡ßΓó« »α«úαá¼¼ αáß»αÑñѽ∩εΓ ¿ «ßó«í«ªñáεΓ
  184. π¬áºáΓѽ¿ ß½πτá⌐¡δ¼ «íαẫ¼,  τΓ«  ΓαÑíπÑΓ  í«½ÑÑ  ß½«ª¡«⌐  ΓÑσ¡¿¬¿
  185. π»αáó½Ñ¡¿∩,  τΓ«  ¿ αÑ὿ºπÑΓß∩ »α«µÑñπαἿ Dispose ¿ FreeMem.  ¥Γ¿
  186. »α«µÑñπαδ »«ºó«½∩εΓ »α«úαἼѠ«ßó«í«ªñáΓ∞ ½εí«⌐ π¬áºáΓѽ∞  ó  ½εí«Ñ
  187. óαѼ∩.
  188.      è«úñá ñ¿¡á¼¿τÑ߬á∩ »ÑαѼѡ¡á∩,  ¬«Γ«αá∩ ¡Ñ ∩ó½∩ÑΓß∩  »«ß½Ññ¡Ñ⌐
  189. (óÑασ¡Ñ⌐) ó ¬πτÑ, «ßó«í«ªñáÑΓß∩ ß »«¼«Θ∞ε Dispose ¿½¿ FreeMem, ¬πτá
  190. ßΓá¡«ó¿Γß∩   Σαáú¼Ñ¡Γ¿α«óá¡¡«⌐.   àß½¿   íδ½á   óδ»«½¡Ñ¡á   Γá   ªÑ
  191. »«ß½Ññ«óáΓѽ∞¡«ßΓ∞  «»ÑαáΓ«α«ó,  á ºáΓѼ Dispose(Ptr3) - ó ßÑαÑñ¿¡Ñ
  192. ¬πτ¿ »«∩ó¿Γß∩ ñδα¬á (α¿ß 16.4).
  193.  
  194.  
  195.                      É¿ß.16.4. "äδα¬á" ó ¬πτÑ.
  196.  
  197.  
  198.       Ptr1  ──÷┌────────────────────────────┐ ì¿ª¡∩∩ úαá¡¿µá »á¼∩Γ¿
  199.                │   ß«ñÑন¼«Ñ Ptr1^         │
  200.       Ptr2  ──÷├────────────────────────────┤
  201.                │   ß«ñÑন¼«Ñ Ptr2^         │
  202.                ├────────────────────────────┤
  203.                │                            │
  204.       Ptr4  ──÷├────────────────────────────┤
  205.                │   ß«ñÑন¼«Ñ Ptr4^         │
  206.       Ptr5  ──÷├────────────────────────────┤
  207.                │   ß«ñÑন¼«Ñ Ptr5^         │
  208.   HeapPtr   ──÷├────────────────────────────┤
  209.                │                            │ éÑασ¡∩∩ úαá¡¿µá
  210.   HeapEnd   ──÷└────────────────────────────┘ »á¼∩Γ¿
  211.  
  212.  
  213.      àß½¿ ßÑ⌐τáß óδ»«½¡¿Γ∞ New(Ptr3),  Γ« «¡  ß¡«óá  ºá⌐¼ÑΓ  Γπ  ªÑ
  214. «í½áßΓ∞ »á¼∩Γ¿. æ ñαπú«⌐ ßΓ«α«¡δ, óδ»«½¡Ñ¡¿Ñ Dispose(Ptr4) πóѽ¿τ¿Γ
  215. ßó«í«ñ¡δ⌐ í½«¬,  »«ß¬«½∞¬π Ptr3 ¿ Ptr4 í뫨 ß«ßÑñ¡¿¼¿ í½«¬á¼¿  (α¿ß
  216. 16.5).
  217.  
  218.               É¿ß.16.5. ôóѽ¿τÑ¡¿Ñ ßó«í«ñ¡«ú« í½«¬á.
  219.  
  220.  
  221.       Ptr1  ──÷┌────────────────────────────┐ ì¿ª¡∩∩ úαá¡¿µá »á¼∩Γ¿
  222.                │   ß«ñÑন¼«Ñ Ptr1^         │
  223.       Ptr2  ──÷├────────────────────────────┤
  224.                │   ß«ñÑন¼«Ñ Ptr2^         │
  225.                ├────────────────────────────┤
  226.                │                            │
  227.                │                            │
  228.                │                            │
  229.       Ptr5  ──÷├────────────────────────────┤
  230.                │   ß«ñÑন¼«Ñ Ptr5^         │
  231.   HeapPtr   ──÷├────────────────────────────┤
  232.                │                            │ éÑασ¡∩∩ úαá¡¿µá
  233.   HeapEnd   ──÷└────────────────────────────┘ »á¼∩Γ¿
  234.  
  235.  
  236.      ìᬫ¡Ñµ, óδ»«½¡Ñ¡¿Ñ  Dispose(Ptr5)   ó«-»Ñαóδσ   ß«ºñáßΓ   ÑΘÑ
  237. í«½∞Φ¿⌐  ßó«í«ñ¡δ⌐  í½«¬,  á  ºáΓѼ »ÑαѼÑßΓ¿Γ HeapPtr ó¡¿º.  èα«¼Ñ
  238. Γ«ú«,  φëàßó«í«ñ¡δ⌐ í½«¬ ß«½∞ÑΓß∩ ß« ßó«í«ñ¡«⌐ »á¼∩Γ∞ε ¬πτ¿,  Γá¬
  239. ¬á¬ »«ß½Ññ¡¿⌐ º¡áτáΘ¿⌐ π¬áºáΓѽ∞ ßÑ⌐τáß - Ptr2 (α¿ßπ¡«¬ 16.6).
  240.  
  241.                É¿ß.16.6. ôñá½Ñ¡¿Ñ ßó«í«ñ¡«ú« í½«¬á.
  242.  
  243.       Ptr1  ──÷┌────────────────────────────┐ ì¿ª¡∩∩ úαá¡¿µá »á¼∩Γ¿
  244.                │   ß«ñÑন¼«Ñ Ptr1^         │
  245.       Ptr2  ──÷├────────────────────────────┤
  246.                │   ß«ñÑন¼«Ñ Ptr2^         │
  247.   HeapPtr   ──÷├────────────────────────────┤
  248.                │                            │
  249.                │                            │
  250.                │                            │
  251.                │                            │ éÑασ¡∩∩ úαá¡¿µá
  252.   HeapEnd   ──÷└────────────────────────────┘ »á¼∩Γ¿
  253.  
  254.  
  255.      èπτá ßÑ⌐τáß ó Γᬫ¼ ªÑ ß«ßΓ«∩¡¿¿,  ¬á¬ íδ½á  »«ß½Ñ  óδ»«½¡Ñ¡¿∩
  256. Release(P) (α¿ß.16.2).   Äñ¡á¬«,  ßó«í«ñ¡δÑ  í½«¬¿,  ß«ºñáóáѼδÑ  ¿
  257. αáºαπΦáѼδÑ  ó  φΓ«¼   αѪ¿¼Ñ,   Σ¿¬ß¿α«ó὿ß∞   ñ½∩   »«ß½ÑñπεΘÑú«
  258. ¿ß»«½∞º«óá¡¿∩.
  259.  
  260.  
  261.                      æ»¿ß«¬ ßó«í«ñ¡δσ í½«¬«ó.
  262.  
  263.      ÇñαÑßá ¿  αẼÑαδ  ßó«í«ñ¡δσ  í½«¬«ó,  ß«ºñáóáѼδσ  Dispose  ¿
  264. FreeMem  σαá¡∩Γß∩ ó ß»¿ß¬Ñ ßó«í«ñ¡δσ í½«¬«ó,  ¬«Γ«αδ⌐ αáßΓÑΓ ßóÑασπ
  265. 󡿺  «Γ  óÑασ¡Ñ⌐  úαá¡¿µδ  ßÑú¼Ñ¡Γá  ¬πτ¿.  è«úñá   αáß»αÑñѽ∩ÑΓß∩
  266. ñ¿¡á¼¿τÑ߬á∩ »ÑαѼѡ¡á∩, ñ« αẼÑΘÑ¡¿∩ ÑÑ ó ¬πτÑ »α«óÑα∩ÑΓß∩ ß»¿ß«¬
  267. ßó«í«ñ¡δσ í½«¬«ó.  àß½¿ ÑßΓ∞  ßó«í«ñ¡δ⌐  í½«¬  »«ñσ«ñ∩ΘÑú«  αẼÑαá
  268. (αẼÑα  í«½∞ΦÑ  ¿½¿  αáóÑ¡  αẼÑαπ αáß»αÑñѽ∩Ѽ«ú« í½«¬á),  Γ« «¡
  269. ¿ß»«½∞ºπÑΓß∩.
  270.      Åα¿¼Ñτá¡¿Ñ: Åα«µÑñπαá  Release óßÑúñá «τ¿ΘáÑΓ ß»¿ß«¬ ßó«í«ñ¡δσ
  271. í½«¬«ó,  τΓ« ºáßΓáó½∩ÑΓ ¼«¡¿Γ«α  ¬πτ¿  "ºáíδΓ∞"  «  óßÑσ  ßó«í«ñ¡δσ
  272. í½«¬áσ,  ¬«Γ«αδÑ ¼«ú½¿ íδΓ∞ ¡¿ªÑ π¬áºáΓѽ∩ ¬πτ¿. àß½¿ éδ ß¼ÑΦ¿óáÑΓÑ
  273. ó맮óδ Mark ¿ Release ß ó맮óἿ Dispose ¿ FreeMem,  Γ«  éδ  ñ«½ª¡δ
  274. íδΓ∞ πóÑαÑ¡δ, τΓ« Γᬿσ ßó«í«ñ¡δσ í½«¬«ó ¡Ñ ßπΘÑßΓóπÑΓ.
  275.      ÅÑαѼѡ¡á∩ FreeList  ¿º  ¼«ñπ½∩  System  π¬áºδóáÑΓ  ¡á  »Ñαóδ⌐
  276. ßó«í«ñ¡δ⌐ í½«¬  ó  ¬πτÑ.  ¥Γ«Γ í½«¬ ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ß½ÑñπεΘ¿⌐
  277. ßó«í«ñ¡δ⌐ í½«¬,  ¬«Γ«αδ⌐ ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ß½ÑñπεΘ¿⌐  ßó«í«ñ¡δ⌐
  278. í½«¬ ¿ Γ.ñ.  Å«ß½Ññ¡¿⌐ ßó«í«ñ¡δ⌐ í½«¬ ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á óÑαΦ¿¡π
  279. ¬πτ¿ (Γ.Ñ.  ¡á  »«½«ªÑ¡¿Ñ,  π¬áºδóáѼ«Ñ  HeapPtr).  àß½¿  ó  ß»¿ß¬Ñ
  280. ßó«í«ñ¡δ⌐ í½«¬«ó ¡ÑΓ ßó«í«ñ¡δσ í½«¬«ó, FreeList αáó¡á HeapPtr.
  281.      ö«α¼áΓ »Ñαóδσ  8  íá⌐Γ  ßó«í«ñ¡«ú«  í½«¬á  «»αÑñѽ∩ÑΓß∩  Γ¿»«¼
  282. TFreeRec:
  283.  
  284.      type
  285.        PFreeRec = ^TFreeRec;
  286.        TFreeRec = record
  287.          Next : PFreeRec;
  288.          Size : Pointer;
  289.        end;
  290.  
  291.      Å«½Ñ Next π¬áºδóáÑΓ ¡á ß½ÑñπεΘ¿⌐ ßó«í«ñ¡δ⌐ í½«¬,  ¿½¿ ¡á Γ« ªÑ
  292. »«½«ªÑ¡¿Ñ, τΓ«  ¿  HeapPtr,  Ñß½¿  í½«¬ - »«ß½Ññ¡¿⌐ ßó«í«ñ¡δ⌐ í½«¬.
  293. Å«½Ñ Size σαá¡¿Γ αẼÑα ßó«í«ñ¡«ú« í½«¬á.  ç¡áτÑ¡¿Ñ Size ¡Ñ «íδτ¡«Ñ
  294. 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ;  ß¬«αÑÑ φΓ« ¡«α¼á½¿º«óá¡¡«Ñ º¡áτÑ¡¿Ñ π¬áºáΓѽ∩
  295. ß τ¿ß½«¼ ßó«í«ñ¡δσ »áαáúαáΣ«ó (16-íá⌐Γ«óδσ í½«¬«ó) ó  ßΓáαΦѼ ß½«óÑ
  296. ¿ τ¿ß½«¼  ßó«í«ñ¡δσ  íá⌐Γ  («Γ 0 ñ« 15) ó ¼½áñΦѼ ß½«óÑ.  æ½ÑñπεΘá∩
  297. Σπ¡¬µ¿∩ BlockSize  »αÑ«íαáºπÑΓ  º¡áτÑ¡¿Ñ  »«½∩  Size  ó  ¡«α¼á½∞¡«Ñ
  298. º¡áτÑ¡¿Ñ LongInt:
  299.  
  300.      function BlockSize(Size: Pointer): Longint;
  301.      type
  302.         PtrRec = record Lo, Hi: Word; end;
  303.      begin
  304.         BlockSize := Longint(PtrRec(Size).Hi) * 16 +
  305.                              PtrRec(Size).Lo;
  306.      end;
  307.  
  308.      ùΓ«íδ úáαá¡Γ¿α«óáΓ∞,  τΓ«  óßÑúñá  íπñÑΓ  ¼ÑßΓ« ñ½∩ TFreeRec ó
  309. ¡áτá½Ñ ßó«í«ñ¡«ú« í½«¬á,  ¼«¡¿Γ«α  ¬πτ¿  «¬απú½∩ÑΓ  αẼÑα  èÇåäÄâÄ
  310. í½«¬á, αáß»αÑñѽ∩Ѽ«ú«  New  ¿½¿ GetMem ñ« 8-íá⌐Γ«ó«⌐ úαá¡¿µδ.  Æá¬
  311. ñ½∩ í½«¬«ó, αẼÑα«¼ ó 1..8 íá⌐Γ αáß»αÑñѽ∩ÑΓß∩ 8 íá⌐Γ, ñ½∩ í½«¬«ó,
  312. αẼÑα«¼ 9..16  αáß»αÑñѽ∩ÑΓß∩ 16 íá⌐Γ ¿ Γ.ñ.  ¥Γ« ¼«ªÑΓ »«¬áºáΓ∞ß∩
  313. αáßΓ«τ¿Γѽ∞¡δ¼ ¿ß»«½∞º«ó᡿Ѽ »á¼∩Γ¿  ¿  ó  ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  íπñÑΓ
  314. Γᬿ¼, Ñß½¿  ¬áªñδ⌐  í½«¬ íπñÑΓ αẼÑα«¼ ó 1 íá⌐Γ.  Äñ¡á¬«,  «íδτ¡«
  315. í½«¬¿ ¿¼ÑεΓ í«½∞Φ¿⌐ αẼÑα ¿ «Γ¡«ß¿Γѽ∞¡δ⌐  αẼÑα  ¡Ñ¿ß»«½∞ºπѼ«ú«
  316. »α«ßΓαá¡ßΓóá ¡Ñóѽ¿¬.    ü«½ÑÑ    Γ«ú«,    ¿   φΓ«   «τÑ¡∞   ó᪡«,
  317. 8-íá⌐Γ¡δ⌐ ¬«φΣΣ¿µ¿Ñ¡Γ    úαá¡π½¿α«óá¡¡«ßΓ¿     úáαá¡Γ¿απÑΓ,     τΓ«
  318. αáß»αÑñѽѡ¿Ñ ¿  «ßó«í«ªñÑ¡¿Ñ  ß½πτá⌐¡δσ í½«¬«ó ¡Ñí«½∞Φ¿σ αẼÑα«ó,
  319. ¬á¬ ¡á»α¿¼Ñα ñ½∩ ßΓ᫬ ß »ÑαѼѡ¡«⌐ ñ½¿¡«⌐ ó  »α«úαá¼¼áσ  «íαáí«Γ¬¿
  320. ΓѬßΓá, ¡Ñ íπñÑΓ ß¿½∞¡« Σαáú¼Ñ¡Γ¿α«óáΓ∞ ¬πτπ. ìá»α¿¼Ñα, ñ«»πßΓ¿¼ 50
  321. -íá⌐Γ¡δ⌐ í½«¬ αáß»αÑñѽ∩ÑΓß∩ ¿ «ßó«í«ªñáÑΓß∩, ßΓá¡«ó∩ß∞ φ½Ñ¼Ñ¡Γ«¼ ó
  322. ß»¿ß¬Ñ ßó«í«ñ¡δσ í½«¬«ó.  ¥Γ«Γ í½«¬ íπñÑΓ «¬απú½Ñ¡ ñ« 56 íá⌐Γ (7*8)
  323. ¿ »«ß½ÑñπεΘ¿⌐ ºá»α«ß ¡á  αáß»αÑñѽѡ¿Ñ  «Γ  49  ñ«  56  íá⌐Γ  íπñÑΓ
  324. »«½¡«ßΓ∞ε ¿ß»«½∞º«óáΓ∞  φëà í½«¬,  ¡Ñ  «ßΓáó½∩∩  «Γ  1  ñ« 7 íá⌐Γ
  325. ßó«í«ñ¡δ¼¿, ¬«Γ«αδÑ íπñπΓ Σαáú¼Ñ¡Γ¿α«óáΓ∞ ¬πτπ.
  326.  
  327.  
  328.                        ÅÑαѼѡ¡á∩ HeapError.
  329.  
  330.      ÅÑαѼѡ¡á∩ HeapError    »«ºó«½∩ÑΓ   óá¼   πßΓá¡«ó¿Γ∞   Σπ¡¬µ¿ε
  331. «íαáí«Γ¬¿ «Φ¿í«¬ ¬πτ¿,  ¬«Γ«αá∩ óδºδóáÑΓß∩,  ¬«úñá ¼«¡¿Γ«α ¬πτ¿  ¡Ñ
  332. ¼«ªÑΓ «íαáí«ΓáΓ∞   ºá»α«ß   ¡á   αáß»αÑñѽѡ¿Ñ   »á¼∩Γ¿.  HeapError
  333. π¬áºδóáÑΓ ¡á Σπ¡¬µ¿ε ß« ß½ÑñπεΘ¿¼ ºáú«½«ó¬«¼:
  334.  
  335.      function HeapFunc(Size: Word): Integer; far;
  336.  
  337.      çá¼ÑΓ¿¼, τΓ« ñ¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá far  πßΓá¡áó½¿óáÑΓ  ñá½∞¡εε
  338. ¼«ñѽ∞  ó맮óá  ñ½∩  Σπ¡¬µ¿¿  «íαáí«Γ¬¿  «Φ¿í«¬.
  339.      öπ¡¬µ¿∩ «íαáí«Γ¬¿  πßΓá¡áó½¿óáÑΓß∩  »α¿ßóá¿ó᡿Ѽ  ÑÑ   áñαÑßá
  340. »ÑαѼѡ¡«⌐ HeapError:
  341.  
  342.      HeapError := @HeapFunc;
  343.  
  344.      öπ¡¬µ¿∩ «íαáí«Γ¬¿ «Φ¿í«¬ ¬πτ¿ óδºδóáÑΓß∩, ¬«úñá New ¿½¿ GetMem
  345. ¡Ñ ¼«úπΓ «íαáí«ΓáΓ∞ ºá»α«ß.  Åáαá¼ÑΓα Size ß«ñÑαª¿Γ  αẼÑα  í½«¬á,
  346. ¬«Γ«αδ⌐   ¡Ñ  ¼«ú  íδΓ∞  αáß»αÑñѽѡ  ¿  Σπ¡¬µ¿∩  «íαáí«Γ¬¿  ñ«½ª¡á
  347. »«»δΓáΓ∞ß∩ «ßó«í«ñ¿Γ∞ í½«¬ αẼÑα«¼ ¡Ñ ¼Ñ¡∞Φ¿¼ φΓ«ú«.
  348.      é ºáó¿ß¿¼«ßΓ¿ «Γ αѺπ½∞ΓáΓá, Σπ¡¬µ¿∩ «íαáí«Γ¬¿ ó«ºóαáΘáÑΓ 0, 1
  349. ¿½¿ 2.  é  ß½πτáÑ  0  íπñÑΓ  ¡Ñ¼Ññ½Ñ¡¡«  ó«º¡¿¬áΓ∞  «Φ¿í¬á  óαѼѡ¿
  350. óδ»«½¡Ñ¡¿∩ ó  »α«úαá¼¼Ñ.  é  ß½πτáÑ  1 ó¼ÑßΓ« áóáα¿⌐¡«ú« ºáóÑαΦÑ¡¿∩
  351. »α«úαá¼¼δ New ¿½¿ GetMem ó«ºóαáΘáεΓ π¬áºáΓѽ∞, αáó¡δ⌐ Nil. ìᬫ¡Ñµ,
  352. 2  «º¡áτáÑΓ  πß»Ñσ  ¿  »«óΓ«α∩ÑΓ  ºá»α«ß  ¡á  αáß»αÑñѽѡ¿Ñ  »á¼∩Γ¿
  353. (¬«Γ«αδ⌐ ¼«ªÑΓ «»∩Γ∞ óδºóáΓ∞ Σπ¡¬µ¿ε «íαáí«Γ¬¿ «Φ¿í«¬).
  354.      æΓá¡ñáαΓ¡á∩ Σπ¡¬µ¿∩ «íαáí«Γ¬¿ «Φ¿í«¬ ¬πτ¿ óßÑúñá ó«ºóαáΘáÑΓ 0,
  355. τΓ« »α¿ó«ñ¿Γ ¬ áóáα¿⌐¡«¼π ºáóÑαΦÑ¡¿ε »α«úαá¼¼δ, Ñß½¿ New ¿½¿ GetMem
  356. ¡Ñ ¼«úπΓ íδΓ∞ óδ»«½¡Ñ¡δ. ä½∩ ¼¡«ú¿σ »α«úαá¼¼ íπñÑΓ πñ«í¡á ß½ÑñπεΘá∩
  357. Σπ¡¬µ¿∩ «íαáí«Γ¬¿ «Φ¿í«¬:
  358.  
  359.      function HeapFunc(Size: Word): Integer; far;
  360.      begin
  361.         HeapFunc := 1;
  362.      end;
  363.  
  364.      è«úñá φΓá  Σπ¡¬µ¿∩ πßΓá¡«ó½Ñ¡á,  New ¿ GetMem íπñπΓ ó«ºóαáΘáΓ∞
  365. nil »α¿ ¡Ñ󫺼«ª¡«ßΓ¿ αáß»αÑñѽ¿Γ∞ »á¼∩Γ∞,  ¡Ñ »α¿ó«ñ∩ ¬ áóáα¿⌐¡«¼π
  366. ºáóÑαΦÑ¡¿ε »α«úαá¼¼δ.
  367.  
  368.      Åα¿¼Ñτá¡¿Ñ: é맮ó  Σπ¡¬µ¿¿  «íαáí«Γ¬¿ «Φ¿í«¬ ¬πτ¿ ß »áαá¼ÑΓα«¼
  369. Size = 0 π¬áºδóáÑΓ, τΓ« ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá ¡á αáß»αÑñѽѡ¿Ñ
  370. ¼«¡¿Γ«α ¬πτ¿   αáßΦ¿α¿½   ¬πτπ,   »ÑαÑñó¿úá∩   HeapPtr  óóÑασ.  ¥Γ«
  371. »α«¿ßσ«ñ¿Γ, ¬«úñá ¡ÑΓ ßó«í«ñ¡δσ í½«¬«ó ó ß»¿ß¬Ñ  ßó«í«ñ¡δσ  í½«¬«ó,
  372. ¿½¿ ¬«úñá   óßÑ   ßó«í«ñ¡δÑ  í½«¬¿  ß½¿Φ¬«¼  ¼á½δ  ñ½∩  ºá»α«ßá  ¡á
  373. αáß»αÑñѽѡ¿Ñ. é맮ó ß Size = 0 ¡Ñ π¬áºδóáÑΓ ¡á  «Φ¿í¬π,  »«ß¬«½∞¬π
  374. ßπΘÑßΓóπÑΓ ñ«ßΓáΓ«τ¡«Ñ  ¼ÑßΓ«  ñ½∩  αáß»αÑñѽѡ¿∩  ¼Ñªñπ  HeapPtr ¿
  375. HeapEnd. æ¬«αÑÑ φΓ« π¬áºδóáÑΓ,  τΓ«  ¡Ñ¿ß»«½∞º«óá¡¡«Ñ  »α«ßΓαá¡ßΓó«
  376. HeapPtr í佫  π¼Ñ¡∞ΦÑ¡«  ¿  ¼«¡¿Γ«α  ¬πτ¿  ¿ú¡«α¿απÑΓ  ó«ºóαáΘáѼ«Ñ
  377. º¡áτÑ¡¿Ñ «Γ ó맮ó«ó φΓ«ú« Γ¿»á.
  378.  
  379.  
  380.                     é¡πΓαÑ¡¡¿Ñ Σ«α¼áΓδ ñá¡¡δσ.
  381.  
  382.                             ûѽδÑ Γ¿»δ.
  383.  
  384.      ö«α¼áΓ, ¿ß»«½∞ºπѼδ⌐ ñ½∩ »αÑñßΓáó½Ñ¡¿∩ µÑ½δσ τ¿ßѽ, ºáó¿ß¿Γ «Γ
  385. ¿σ ¼¿¡¿¼á½∞¡«⌐ ¿ ¼á¬ß¿¼á½∞¡«⌐ úαá¡¿µ:
  386.  
  387.      - úαá¡¿µá ó ñ¿á»áº«¡Ñ -128  ..  127  (Shortint)  -  »ÑαѼѡ¡á∩
  388. σαá¡¿Γß∩ ¬á¬ º¡á¬«óδ⌐ íá⌐Γ.
  389.  
  390.      - úαá¡¿µá  ó  ñ¿á»áº«¡Ñ 0 ..  255 (Byte) - »ÑαѼѡ¡á∩ σαá¡¿Γß∩
  391. ¬á¬ íѺº¡á¬«óδ⌐ íá⌐Γ.
  392.  
  393.      - úαá¡¿µá ó ñ¿á»áº«¡Ñ -32768 ..  32767 (Integer) -  »ÑαѼѡ¡á∩
  394. σαá¡¿Γß∩ ¬á¬ º¡á¬«ó«Ñ ß½«ó«.
  395.  
  396.      - úαá¡¿µá ó ñ¿á»áº«¡Ñ 0 ..  65535 (Word) - »ÑαѼѡ¡á∩ σαá¡¿Γß∩
  397.  ¬á¬ íѺº¡á¬«ó«Ñ ß½«ó«.
  398.  
  399.      - ó ñαπú¿σ ß½πτá∩σ »ÑαѼѡ¡á∩ σαá¡¿Γß∩  ¬á¬  º¡á¬«ó«Ñ  ñó«⌐¡«Ñ
  400. ß½«ó« (Longint).
  401.  
  402.  
  403.                           æ¿¼ó«½∞¡δ⌐ Γ¿».
  404.  
  405.      Æ¿» Char ¿½¿ »«ññ¿á»áº«¡ Γ¿»á Char  σαá¡¿Γß∩  ¬á¬  íѺº¡á¬«óδ⌐
  406. íá⌐Γ.
  407.  
  408.                           ï«ú¿τÑ߬¿⌐ Γ¿».
  409.  
  410.      Æ¿» éoolean  σαá¡¿Γß∩  ¬á¬ íá⌐Γ ¿ »α¿¡¿¼áÑΓ º¡áτÑ¡¿∩ 0 (False)
  411. ¿½¿ 1 (True).
  412.  
  413.  
  414.                         ÅÑαÑτ¿ß½¿¼δÑ Γ¿»δ.
  415.  
  416.      ÅÑαÑτ¿ß½¿¼δ⌐ Γ¿»    σαá¡¿Γß∩   ó   íѺº¡á¬«ó«¼   íá⌐ΓÑ,   Ñß½¿
  417. »ÑαÑτ¿ß½Ñ¡¿Ñ ¿¼ÑÑΓ 256 ¿½¿ ¼Ñ¡∞ΦÑ º¡áτÑ¡¿⌐,  ó »α«Γ¿ó¡«¼ ß½πτáÑ  «¡
  418. σαá¡¿Γß∩ ¬á¬ íѺº¡á¬«ó«Ñ ß½«ó«.
  419.  
  420.  
  421.                         éÑΘÑßΓóÑ¡¡δÑ Γ¿»δ.
  422.  
  423.      éÑΘÑßΓóÑ¡¡δÑ Γ¿»δ (Real,  Single,  Double,  Extended  ¿  Comp)
  424. σαá¡∩Γ ñó«¿τ¡«Ñ  »αÑñßΓáó½Ñ¡¿Ñ º¡á¬á (+/-),  φ¬ß»«¡Ñ¡Γδ ¿ ¼á¡Γ¿ßßδ.
  425. ÅαÑñßΓáó½Ñ¡¿Ñ τ¿ß½á ¿¼ÑÑΓ ó¿ñ :
  426.  
  427.      +/- ¼á¡Γ¿ßßá σ 2**φ¬ß»«¡Ñ¡Γá
  428.  
  429.      úñÑ ¼á¡Γ¿ßßá ¿¼ÑÑΓ «ñ¿¡ í¿Γ ß½Ñóá «Γ Γ«τ¬¿ ñó«¿τ¡«ú« τ¿ß½á (Γ«
  430. ÑßΓ∞ 0 <= ¼á¡Γ¿ßßá < 2).
  431.  
  432.      Åα¿¼Ñτá¡¿Ñ: ìá   ß½ÑñπεΘѼ  α¿ßπ¡¬Ñ  msb  «º¡áτáÑΓ  ¡á¿í«½∞Φ¿⌐
  433. º¡áτáΘ¿⌐ í¿Γ ¿  lsb  «º¡áτáÑΓ  ¡á¿¼Ñ¡∞Φ¿⌐.  èαá⌐¡Ñ  ½ÑóδÑ  φ½Ñ¼Ñ¡Γδ
  434. σαá¡∩Γß∩ ¡á í«½∞Φ¿σ áñαÑßáσ.  ìá»α¿¼Ñα, ñ½∩ º¡áτÑ¡¿∩ Γ¿»á Real, Ñ -
  435. σαá¡¿Γß∩ ó »Ñαó«¼ íá⌐ΓÑ,  f  -  ó  ß½ÑñπεΘ¿σ  5  íá⌐Γáσ  ¿  s  -  ó
  436. ¡á¿í«½∞ΦѼ º¡áτáΘѼ í¿ΓÑ »«ß½Ññ¡Ñú« íá⌐Γá.
  437.  
  438.  
  439.                              Æ¿» Real.
  440.  
  441.      6-Γ¿ íá⌐Γ«óδ⌐ (48-¼¿ í¿Γ«óδ⌐) Γ¿» Real ñѽ¿Γß∩ ¡á Γα¿ »«½∩:
  442.  
  443.                  1        39           8
  444.                ┌───┬──────..───────┬────────┐
  445.                │ s │      f        │   e    │
  446.                └───┴──────..───────┴────────┘
  447.                    msb          lsb msb   lsb
  448.  
  449.  
  450.      ç¡áτÑ¡¿Ñ  τ¿ß½á v «»αÑñѽ∩ÑΓß∩ ¬á¬,
  451.  
  452.      Ñß½¿ 0 < e <= 255, Γ« v = (-1)**s x 2**(e-129) x (1.f).
  453.      Ñß½¿ Ñ = 0, Γ« v = 0.
  454.  
  455.      Åα¿¼Ñτá¡¿Ñ: Æ¿» Real ¡Ñ ¼«ªÑΓ σαá¡¿Γß∩  ñÑ¡«α¼á½¿º«óá¡¡δ¼, NaN
  456. ¿    ¡Ñ«»αÑñѽѡ¡δ¼.    äÑ¡«α¼á½¿º«óá¡¡«Ñ   ßΓá¡«ó¿Γß∩   0,   ¬«úñá
  457. ºá»«¼¿¡áÑΓß∩  ó   Real.   NaN,   ¿   ¡Ñ«»αÑñѽѡ¡«Ñ   ñáεΓ   «Φ¿í¬π
  458. »ÑαÑ»«½¡Ñ¡¿∩, »α¿ »«»δΓ¬Ñ ºá»«¼¡¿Γ∞ ¿σ ó Real.
  459.  
  460.  
  461.                             Æ¿» Single.
  462.  
  463.      4-σ íá⌐Γ«óδ⌐ (32-σ í¿Γ¡δ⌐) Γ¿» Single ñѽ¿Γß∩ ¡á Γα¿ »«½∩:
  464.  
  465.                  1    8           23
  466.                ┌───┬──────┬───────..─────────┐
  467.                │ s │  e   │        f         │
  468.                └───┴──────┴───────..─────────┘
  469.                    msb   lsb msb            lsb
  470.  
  471.  
  472.  
  473.      ç¡áτÑ¡¿Ñ τ¿ß½á v «»αÑñѽ∩ÑΓß∩ ¬á¬,
  474.  
  475.      Ñß½¿ 0 < e < 255, Γ« v = (-1)**s x 2**(e-127) x (1.f).
  476.      Ñß½¿ e = 0 ¿ f <> 0, Γ« v = (-1)**s x 2**(-126) x (0.f).
  477.      Ñß½¿ e = 0 ¿ f = 0, Γ« v = (-1)**s x 0
  478.      Ñß½¿ e = 255 ¿ f = 0, Γ« v = (-1)**s x Inf.
  479.      Ñß½¿ e = 255 ¿ f <> 0, Γ« v = NaN.
  480.  
  481.  
  482.                             Æ¿» Double.
  483.  
  484.      8-σ íá⌐Γ«óδ⌐ (64-σ í¿Γ¡δ⌐) Γ¿» Double ñѽ¿Γß∩ ¡á Γα¿ »«½∩:
  485.  
  486.  
  487.                  1    11          52
  488.                ┌───┬──────┬───────..────────┐
  489.                │ s │  e   │        f        │
  490.                └───┴──────┴───────..────────┘
  491.                   msb  lsb msb             lsb
  492.  
  493.  
  494.      ç¡áτÑ¡¿Ñ τ¿ß½á v «»αÑñѽ∩ÑΓß∩ ¬á¬,
  495.  
  496.      Ñß½¿ 0 < e < 2047, Γ« v = (-1)**s x 2**(e-1023) x (1.f).
  497.      Ñß½¿ e = 0 ¿ f <> 0, Γ« v = (-1)**s x 2**(-1022) x (0.f).
  498.      Ñß½¿ e = 0 ¿ f = 0, Γ« v = (-1)**s x 0
  499.      Ñß½¿ e = 2047 ¿ f = 0, Γ« v = (-1)**s x  Inf.
  500.      Ñß½¿ e = 2047 ¿ f <> 0, Γ« v = NaN.
  501.  
  502.  
  503.                            Æ¿» Extended.
  504.  
  505.      10-σ íá⌐Γ«óδ⌐ (80-σ í¿Γ¡δ⌐) Γ¿» Extended ñѽ¿Γß∩ ¡á  Γα¿ »«½∩:
  506.  
  507.                  1    15      1          63
  508.                ┌───┬────────┬───┬────────..───────┐
  509.                │ s │  e     │ i │        f        │
  510.                └───┴────────┴───┴────────..───────┘
  511.                    msb     lsb  msb              lsb
  512.  
  513.  
  514.      ç¡áτÑ¡¿Ñ τ¿ß½á v «»αÑñѽ∩ÑΓß∩ ¬á¬,
  515.  
  516.      Ñß½¿ 0 <= e < 32767, Γ« v = (-1)**s x 2**(e-16383) x (1.f).
  517.      Ñß½¿ e = 32767 ¿ f = 0, Γ« v = (-1)**s x Inf.
  518.      Ñß½¿ e = 32767 ¿ f <> 0, Γ« v = NaN.
  519.  
  520.  
  521.                              Æ¿» Comp.
  522.  
  523.      8-σ íá⌐Γ«óδ⌐ (64-σ í¿Γ¡δ⌐) Γ¿» Comp ñѽ¿Γß∩ ¡á ñóá »«½∩:
  524.  
  525.  
  526.                  1             63
  527.                ┌───┬───────────..──────────────┐
  528.                │ s │           d               │
  529.                └───┴───────────..──────────────┘
  530.                    msb                        lsb
  531.  
  532.  
  533.      ç¡áτÑ¡¿Ñ τ¿ß½á v «»αÑñѽ∩ÑΓß∩ ¬á¬,
  534.  
  535.      Ñß½¿ s = 1 ¿ d = 0, Γ« v = NaN.
  536.  
  537.      ê¡áτÑ v - ñó«¿τ¡«Ñ ñ«»«½¡Ñ¡¿Ñ 64-í¿Γ¡«ú« º¡áτÑ¡¿∩.
  538.  
  539.  
  540.                            Æ¿» Pointer.
  541.  
  542.      Æ¿» Pointer σαá¡¿Γß∩ ¬á¬ ñó«⌐¡«Ñ ß½«ó«  ß  τáßΓ∞ε  ß¼ÑΘÑ¡¿∩  ó
  543. ¼½áñΦѼ  ß½«óÑ  ¿  ß  ßÑú¼Ñ¡Γ¡«⌐  τáßΓ∞ε ó ßΓáαΦѼ ß½«óÑ.  ç¡áτÑ¡¿Ñ
  544. π¬áºáΓѽ∩ nil σαá¡¿Γß∩ ¬á¬ 0 ó «í«¿σ ß½«óáσ.
  545.  
  546.  
  547.                           æΓ᫬«óδ⌐ Γ¿».
  548.  
  549.       ä½¿¡á ßΓ᫬«ó«ú«  Γ¿»á  ó íá⌐Γáσ αáó¡á Ñú« ¼á¬ß¿¼á½∞¡«⌐ ñ½¿¡Ñ
  550. »½εß 1. ÅÑαóδ⌐ íá⌐Γ ß«ñÑαª¿Γ ΓѬπΘπε ñ½¿¡π ßΓ᫬¿ ¿ ß½ÑñπεΘ¿Ñ íá⌐Γδ
  551. ß«ñÑαªáΓ   ß¿¼ó«½δ   ßΓ᫬¿.  üá⌐Γ  ñ½¿¡δ  ¿  ß¿¼ó«½δ  »αÑñßΓáó½Ñ¡δ
  552. íѺº¡á¬«ó묨 º¡áτÑ¡¿∩¼¿.  îá¬ß¿¼á½∞¡á∩ ñ½¿¡á  ßΓ᫬¿  255  ß¿¼ó«½«ó
  553. »½εß íá⌐Γ ñ½¿¡δ (string[255]).
  554.  
  555.  
  556.                           Æ¿» ¼¡«ªÑßΓóá.
  557.  
  558.      î¡«ªÑßΓó« (set)  -  φΓ«  í¿Γ«óδ⌐  ¼áßß¿ó,   úñÑ   ¬áªñδ⌐   í¿Γ
  559. »«¬áºδóáÑΓ  - ÑßΓ∞ ñá¡¡δ⌐ φ½Ñ¼Ñ¡Γ ó ¼¡«ªÑßΓóÑ ¿½¿ ¡ÑΓ. îá¬ß¿¼á½∞¡«Ñ
  560. τ¿ß½« φ½Ñ¼Ñ¡Γ«ó ó ¼¡«ªÑßΓóÑ - 256,  »«φΓ«¼π  ¼¡«ªÑßΓó«  ¡¿¬«úñá  ¡Ñ
  561. ºá¡¿¼áÑΓ   í«½ÑÑ   32   íá⌐Γ.   ù¿ß½«  íá⌐Γ  ºá¡¿¼áѼδσ  ¼¡«ªÑßΓó«¼
  562. óδτ¿ß½∩ÑΓß∩ ¬á¬ :
  563.  
  564.      ByteSize = (Max div 8) - (Min div 8) + 1
  565.  
  566.      úñÑ Min ¿ Max - ¡¿ª¡∩∩ ¿ óÑασ¡∩∩ úαá¡¿µδ íẫó«ú«  Γ¿»á  φΓ«ú«
  567. ¼¡«ªÑßΓóá. ¥½Ñ¼Ñ¡Γ à ºá¡¿¼áÑΓ íá⌐Γ ß ¡«¼Ñα«¼:
  568.  
  569.      ByteNumber = ( E div 8) - (Min div 8)
  570.  
  571.      ¿ »«º¿µ¿∩ í¿Γá ó¡πΓα¿ íá⌐Γá:
  572.  
  573.      BitNumber = E mod 8
  574.  
  575.      úñÑ à »αÑñßΓáó½∩ÑΓ »«α∩ñ¬«ó«Ñ º¡áτÑ¡¿Ñ φ½Ñ¼Ñ¡Γá.
  576.  
  577.  
  578.                            Æ¿» ¼áßß¿óá.
  579.  
  580.      îáßß¿ó σαá¡¿Γß∩ ¬á¬ ¡Ñ»αÑαδó¡á∩  »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ »ÑαѼѡ¡δσ
  581. Γ«ú«  Γ¿»á,  ¿º  ¬«Γ«αδσ  «íΩ∩ó½Ñ¡ ¼áßß¿ó.  è«¼»«¡Ñ¡Γá ß ¡á¿¼Ñ¡∞Φ¿¼
  582. ¿¡ñѬ߫¼ σαá¡¿Γß∩ »« ¡á¿¼Ñ¡∞ΦѼπ áñαÑßπ »á¼∩Γ¿.  î¡«ú«¼Ñα¡δ⌐ ¼áßß¿ó
  583. σαá¡¿Γß∩ Γá¬, τΓ« ¡á¿í«½ÑÑ »αáóδ⌐ ¿¡ñѬߠπóѽ¿τ¿óáÑΓß∩ »Ñαóδ¼.
  584.  
  585.  
  586.                             Æ¿» ºá»¿ß∞.
  587.  
  588.      Å«½∩ ºá»¿ß¿  σαá¡∩Γß∩   ¬á¬   ¡Ñ»αÑαδó¡á∩   »«ß½Ññ«óáΓѽ∞¡«ßΓ∞
  589. »ÑαѼѡ¡δσ. ÅÑαó«Ñ »«½Ñ σαá¡¿Γß∩ »« ¡á¿¼Ñ¡∞ΦѼπ áñαÑßπ »á¼∩Γ¿. àß½¿
  590. ºá»¿ß∞  ß«ñÑαª¿Γ  óáα¿á¡Γ¡δÑ  τáßΓ¿,  Γ«  ¬áªñá∩  óáα¿á¡Γ¡á∩  τáßΓ∞
  591. ¡áτ¿¡áÑΓß∩ ß «ñ¡«ú« ¿ Γ«ú« ªÑ áñαÑßá.
  592.  
  593.  
  594.                            öá⌐½«óδ⌐ Γ¿».
  595.  
  596.      öá⌐½«óδ⌐ Γ¿»   »αÑñßΓáó½Ñ¡   ¬á¬   ºá»¿ß∞.   Æ¿»¿α«óá¡¡δÑ    ¿
  597. ¡ÑΓ¿»¿α«óá¡¡δÑ Σá⌐½δ ºá¡¿¼áεΓ 128 íá⌐Γ ¿ ¿¼ÑεΓ ß½ÑñπεΘπε ßΓαπ¬Γπαπ:
  598.  
  599.   type
  600.      FileRec = record
  601.        Handle: Word;
  602.        Mode: Word;
  603.        RecSize: Word;
  604.        Private: array[1..26] of Byte;
  605.        UserData: array[1..16] of Byte;
  606.        Name: array[0..79] of Char;
  607.      end;
  608.  
  609.      ÆѬßΓ«óδ⌐ Σá⌐½ ºá¡¿¼áÑΓ 256 íá⌐Γ ¿ ¿¼ÑÑΓ ßΓαπ¬Γπαπ:
  610.  
  611.   type
  612.     TextBuf = array[0..127] of Char;
  613.     TextRec = record
  614.       Handle: Word;
  615.       Mode: Word;
  616.       BufSize: Word;
  617.       Private: Word;
  618.       BufPos: Word;
  619.       BufEnd: Word;
  620.       BufPtr: ^TextBuf;
  621.       OpenFunc: Pointer;
  622.       InOutFunc: Pointer;
  623.       FlushFunc: Pointer;
  624.       CloseFunc: Pointer;
  625.       UserData: array[1..16] of Byte;
  626.       Name: array[0..79] of Char;
  627.       Buffer: TextBuf;
  628.     end;
  629.  
  630.      Hándle ß«ñÑαª¿Γ «íαáí«Γτ¿¬ Σá⌐½á,  ó«ºóαáΘáѼδ⌐ ¿º  DOS.  Å«½Ñ
  631. Mode ¼«ªÑΓ »α¿¡¿¼áΓ∞ «ñ¡« ¿º º¡áτÑ¡¿⌐:
  632.  
  633. const
  634.   fmClosed = $D7B0;
  635.   fmInput  = $D7B1;
  636.   fmOutput = $D7B2;
  637.   fmInOut  = $D7B3;
  638.  
  639.      fmClosed «º¡áτáÑΓ,  τΓ«  Σá⌐½  ºá¬αδΓ.  fmInput «º¡áτáÑΓ,  τΓ«
  640. ΓѬßΓ«óδ⌐ Σá⌐½ íδ½ «Γ¬αδΓ  ¬á¬  óσ«ñ¡«⌐  (Reset),  fmOutput  -  ¬á¬
  641. óδσ«ñ¡«⌐  (Rewrite).  fmInOut  «º¡áτáÑΓ,  τΓ«  Σá⌐½«óá∩  »ÑαѼѡ¡á∩
  642. Γ¿»¿α«óá¡¡«ú« ¿½¿ ¡ÑΓ¿»¿α«óá¡¡«ú« Σá⌐½á íδ½á «Γ¬αδΓá ¡á  τΓÑ¡¿Ñ ¿½¿
  643. ºá»¿ß∞.  éßÑ  ñαπú¿Ñ º¡áτÑ¡¿∩ «º¡áτáεΓ,  τΓ« Σá⌐½«óá∩ »ÑαѼѡ¡á∩ ¡Ñ
  644. íδ½á ¿¡¿µ¿á½¿º¿α«óá¡á (ß »«¼«Θ∞ε Assign).
  645.      Å«½Ñ UserData  ¡¿¬«úñá  ¡Ñ  ¿ß»«½∞ºπÑΓß∩  Turbo Pascal ¿ ¼«ªÑΓ
  646. ßó«í«ñ¡« ¿ß»«½∞º«óáΓ∞ß∩ »α«úαá¼¼¿ßΓ«¼.
  647.      Name ß«ñÑαª¿Γ    ¿¼∩    Σá⌐½á,    ¬«Γ«αδ⌐    »αÑñßΓáó½Ñ¡   ¬á¬
  648. »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ß¿¼ó«½«ó, ºáóÑαΦÑ¡¡á∩ ¡π½Ñóδ¼ ß¿¼ó«½«¼ (#0).
  649.      ä½∩ Γ¿»¿α«óá¡¡δσ  ¿  ¡ÑΓ¿»¿α«óá¡¡δσ  Σá⌐½«ó  RecSize  ß«ñÑনΓ
  650. ñ½¿¡π  ºá»¿ß¿  ó  íá⌐Γáσ,  ¿  »«½Ñ  Private  ¡Ñ  ¿ß»«½∞ºπÑΓß∩,   ¡«
  651. ºáαѺÑαó¿α«óá¡«.
  652.      ä½∩ ΓѬßΓ«óδσ  Σá⌐½«ó  BufPtr  -  π¬áºáΓѽ∞  ¡á  íπΣÑα  ñ½¿¡«⌐
  653. BufSize  íá⌐Γ,  BufPos  -  ¿¡ñѬߠ ß½ÑñπεΘÑú«  ß¿¼ó«½á ó íπΣÑαÑ ñ½∩
  654. τΓÑ¡¿∩ ¿½¿  ºá»¿ß¿,  BufEnd  -  ¬«½¿τÑßΓó«  «ßΓáóΦ¿σß∩  ß¿¼ó«½«ó  ó
  655. íπΣÑαÑ.  OpenFunc,  InOutFunc,  FlushFunc, CloseFunc - π¬áºáΓѽ¿ ¡á
  656. »α«úαá¼¼δ é/é,  π»αáó½∩εΘ¿Ñ Σá⌐½«¼.  é αáºñѽѠ"äαá⌐óÑα  πßΓα«⌐ßΓóá
  657. ΓѬßΓ«ó«ú« Σá⌐½á" ú½áóδ 19 φΓ« «»¿ßá¡« í«½ÑÑ »«ñα«í¡«.
  658.  
  659.  
  660.                          Åα«µÑñπα¡δ⌐ Γ¿».
  661.  
  662.      Åα«µÑñπα¡δ⌐ Γ¿» σαá¡¿Γß∩ ¬á¬ ñó«⌐¡«Ñ ß½«ó« ß τáßΓ∞ε ß¼ÑΘÑ¡¿∩ ó
  663. ß½«óÑ  ß  ¼½áñΦ¿¼  áñαÑß«¼  ¿  ßÑú¼Ñ¡Γ¡«⌐  τáßΓ∞ε ó ß½«óÑ ß í«½∞Φ¿¼
  664. áñαÑß«¼.
  665.  
  666.  
  667.                       Åα∩¼«⌐ ñ«ßΓπ» ¬ »á¼∩Γ¿.
  668.  
  669.      Turbo Pascal αÑ὿ºπÑΓ Γα¿ »αÑñ«»αÑñѽѡ¡δσ ¼áßß¿óá Mem, MemW,
  670. MemL, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓß∩ ñ½∩ »α∩¼«ú«  ñ«ßΓπ»á  ¬  »á¼∩Γ¿.  èáªñδ⌐
  671. φ½Ñ¼Ñ¡Γ Mem - «ñ¿¡ íá⌐Γ,  ¬áªñδ⌐ φ½Ñ¼Ñ¡Γ MemW - «ñ¡« ß½«ó« ¿ ¬áªñδ⌐
  672. φ½Ñ¼Ñ¡Γ MemL - ñó«⌐¡«Ñ ß½«ó« (LongInt).
  673.      îáßß¿ó Mem  ¿ß»«½∞ºπÑΓ ß»Ñµ¿á½∞¡δ⌐ ß¿¡Γá¬ß¿ß ñ½∩ ¿¡ñѬßá:  ñóá
  674. óδαáªÑ¡¿∩ Γ¿»á  ß½«ó«,  αáºñѽѡ¡δÑ  ñó«ÑΓ«τ¿Ñ¼,  ¿ß»«½∞ºπεΓß∩  ñ½∩
  675. π¬áºá¡¿∩ ßÑú¼Ñ¡Γá ¿ ß¼ÑΘÑ¡¿∩ »á¼∩Γ¿. Åα¿¼Ñαδ:
  676.  
  677.      Mem [$0040: $0049] := 7;
  678.      Data := MemW [Seg(V):Ofs(V)];
  679.      MemLong := MemL[64:3*4];
  680.  
  681.      ÅÑαóδ⌐ «»ÑαáΓ«α  ºá»¿ßδóáÑΓ  º¡áτÑ¡¿Ñ  7  ó  íá⌐Γ $0040:$0049.
  682. éΓ«α«⌐ «»ÑαáΓ«α »ÑαÑßδ½áÑΓ º¡áτÑ¡¿Ñ Γ¿»á ß½«ó«, ºá»¿ßá¡¡«Ñ ó »Ñαóδσ
  683. ñóπσ  íá⌐Γáσ  »ÑαѼѡ¡«⌐  V,  ó  »ÑαѼѡ¡πε  Data.  ÆαÑΓ¿⌐ «»ÑαáΓ«α
  684. »ÑαÑßδ½áÑΓ º¡áτÑ¡¿∩  Γ¿»á  Longint,  σαá¡∩Θ¿Ñß∩  ó  $0040:$000C,  ó
  685. »ÑαѼѡ¡πε MemLong.
  686.