home *** CD-ROM | disk | FTP | other *** search
- âïÇéÇ 13.
-
- ÄéàÉïàê.
-
- ÄóÑα½Ñ¿ - φΓ« τáßΓ¿ »α«úαá¼¼δ, ¬«Γ«αδÑ αáºñѽ∩εΓ «íΘπε «í½áßΓ∞
- »á¼∩Γ¿. Æ«½∞¬« ΓÑ τáßΓ¿ »α«úαá¼¼δ, ¬«Γ«αδÑ ΓαÑíπεΓß∩ ñ½∩ óδ»«½¡Ñ¡¿∩
- ñá¡¡«⌐ Σπ¡¬µ¿¿, αẼÑΘáεΓß∩ ó »á¼∩Γ¿ ó φΓ« óαѼ∩; ºáΓѼ «¡¿ ¼«úπΓ
- íδΓ∞ »ÑαѬαδΓδ ñαπú¿¼¿ »α«úαἼἿ.
- ÄóÑα½Ñ¿ ¼«úπΓ º¡áτ¿Γѽ∞¡« ß«¬αáΓ¿Γ∞ ¬«½¿τÑßΓó« »á¼∩Γ¿,
- ΓαÑíπѼ«Ñ »α¿ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ. é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, éδ ¼«ªÑΓÑ
- óδ»«½¡∩Γ∞ »α«úαá¼¼δ, ¬«Γ«αδÑ ¡á¼¡«ú« í«½∞ΦÑ, τѼ ñ«ßΓπ»¡á∩ ó
- ß¿ßΓÑ¼Ñ »á¼∩Γ∞, »«ß¬«½∞¬π ó ¬áªñδ⌐ ¼«¼Ñ¡Γ ó »á¼∩Γ¿ αẼÑΘáÑΓß∩
- Γ«½∞¬« τáßΓ∞ »α«úαá¼¼δ.
- Turbo Pascal π»αáó½∩ÑΓ «óÑα½Ñ∩¼¿ ¡á πα«ó¡Ñ ¼«ñπ½Ñ⌐; φΓ«
- ¡á¿¼Ñ¡∞Φá∩ τáßΓ∞ »α«úαá¼¼δ, ¬«Γ«απε ¼«ª¡« ßñѽáΓ∞ «óÑα½Ñ⌐¡«⌐. è«úñá
- «óÑα½Ñ⌐¡á∩ »α«úαá¼¼á ¬«¼»¿½¿απÑΓß∩, Turbo Pascal úÑ¡Ñα¿απÑΓ
- «óÑα½Ñ⌐¡δ⌐ Σá⌐½ (ß αáßΦ¿αÑ¡¿Ñ¼ .OVR) ó ñ«»«½¡Ñ¡¿Ñ ¬ óδ»«½¡¿¼«¼π
- Σá⌐½π (ß αáßΦ¿αÑ¡¿Ñ¼ .EXE). .EXE Σá⌐½ ß«ñÑαª¿Γ ßΓáΓ¿τÑ߬πε
- (¡Ñ»ÑαѬαδóáѼπε) τáßΓ∞ »α«úαá¼¼δ ¿ .OVR Σá⌐½ ß«ñÑαª¿Γ óßÑ ¼«ñπ½¿,
- ¬«Γ«αδÑ íπñπΓ »ÑαѬáτ¿óáΓ∞ß∩ ó/¿º »á¼∩Γ¿ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩
- »α«úαá¼¼δ.
- çá ¿ß¬½ετÑ¡¿Ñ¼ ¡Ñ߬«½∞¬¿σ »αáó¿½ »α«úαá¼¼¿α«óá¡¿∩, «óÑα½Ñ⌐¡δÑ
- ¼«ñ㫨 ¿ñÑ¡Γ¿τ¡δ ß ¡Ñ«óÑα½Ñ⌐¡δ¼¿ ¼«ñπ½∩¼¿. é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, Ñß½¿
- éδ ß«í½εñáÑΓÑ φΓ¿ »αáó¿½á, éá¼ ñáªÑ ¡Ñ ¡πª¡« »ÑαѬ«¼»¿½¿α«óáΓ∞ φΓ¿
- ¼«ñπ½¿, τΓ«íδ ßñѽáΓ∞ ¿σ «óÑα½Ñ⌐¡δ¼¿. ÉÑΦÑ¡¿Ñ, íπñÑΓ ¼«ñπ½∞
- «óÑα½Ñ⌐¡δ¼ ¿½¿ ¡ÑΓ, »α¿¡¿¼áÑΓ ú½áó¡á∩ »α«úαá¼¼á.
- è«úñá «óÑα½Ñ⌐ ºáúαπªáÑΓß∩ ó »á¼∩Γ∞, «¡ »«¼ÑΘáÑΓß∩ ó «óÑα½Ñ⌐¡δ⌐
- íπΣÑα, ¬«Γ«αδ⌐ αẼÑΘáÑΓß∩ ó »á¼∩Γ¿ ¼Ñªñπ ßΓѬ«¼ ¿ ¬πτÑ⌐. Å«
- π¼«½τá¡¿ε, αẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá πßΓá¡áó½¿óáÑΓß∩ ¬á¬ ¼«ª¡«
- ¼Ñ¡∞ΦÑ, ¡« «¡ ¼«ªÑΓ íδΓ∞ ½Ñú¬« πóѽ¿τÑ¡ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩,
- óδñѽѡ¿Ñ¼ ñ«»«½¡¿Γѽ∞¡«⌐ »á¼∩Γ¿ ¿º ¬πτ¿. èᬠßÑú¼Ñ¡Γ ñá¡¡δσ ¿
- ¼¿¡¿¼á½∞¡δ⌐ αẼÑα ¬πτ¿, αẼÑα íπΣÑαá «óÑα½ÑÑó (»« π¼«½τá¡¿ε)
- αáß»αÑñѽ∩ÑΓß∩ »α¿ ºáúαπº¬Ñ .EXE Σá⌐½á. àß½¿ »á¼∩Γ¿ ¡Ññ«ßΓáΓ«τ¡«,
- DOS óδñáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ (»α«úαá¼¼á ß½¿Φ¬«¼ óѽ¿¬á ñ½∩
- ºáúαπº¬¿ ó »á¼∩Γ∞) ¿½¿ ¿¡ΓÑúα¿α«óá¡¡«⌐ ßαÑñ«⌐ Turbo Pascal
- (¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿ ñ½∩ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ).
- àßΓ∞ «τÑ¡∞ ó᪡á∩ 󫺼«ª¡«ßΓ∞ ¼«¡¿Γ«αá «óÑα½ÑÑó »α¿ ºáúαπº¬Ñ
- «óÑα½Ñ⌐¡«ú« Σá⌐½á ó ß½πτáÑ, ¬«úñá ó ß¿ßΓÑ¼Ñ ñ«ßΓáΓ«τ¡δ⌐ «íΩѼ
- αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿. ä½∩ φΓ¿σ µÑ½Ñ⌐ Turbo Pascal »«ññÑনóáÑΓ
- æ»Ñµ¿Σ¿¬áµ¿ε ÉáßΦ¿αÑ¡¡«⌐ Åá¼∩Γ¿ Σ¿α¼ Lotus/Intel/Microsoft
- (Expanded Memory Specification - EMS) óÑαß¿¿ 3.2 ¿ óδΦÑ. ū߽Ñ
- ºáúαπº¬¿ ó EMS, «óÑα½Ñ⌐¡δ⌐ Σá⌐½ ºá¬αδóáÑΓß∩ ¿ ºáúαπº¬á «óÑα½ÑÑó
- óδ»«½¡∩ÑΓß∩ íδßΓαδ¼ ¬«»¿α«ó᡿Ѽ ó »á¼∩Γ¿.
-
-
- î«¡¿Γ«α «óÑα½ÑÑó.
-
- î«¡¿Γ«α «óÑα½ÑÑó Turbo Pascal αÑ὿º«óá¡ ßΓá¡ñáαΓ¡δ¼ ¼«ñπ½Ñ¼
- Overlay. ÆÑσ¡¿¬á π»αáó½Ñ¡¿∩ íπΣÑα«¼, ¿ß»«½∞ºπѼá∩ ¼«ñπ½Ñ¼ Overlay,
- óßÑúñá úáαá¡Γ¿απÑΓ «»Γ¿¼á½∞¡πε »α«¿ºó«ñ¿Γѽ∞¡«ßΓ∞ ó óδñѽѡ¡«⌐
- »á¼∩Γ¿. ìá»α¿¼Ñα, ¼«¡¿Γ«α «óÑα½ÑÑó óßÑúñá ß«σαá¡∩ÑΓ ó íπΣÑαÑ
- «óÑα½ÑÑó ¬á¬ ¼«ª¡« í«½∞ΦÑ «óÑα½ÑÑó, ñ½∩ Γ«ú« τΓ«íδ ß«¬αáΓ¿Γ∞ τΓÑ¡¿Ñ
- «óÑα½ÑÑó ß ñ¿ß¬á. Å«ß½Ñ Γ«ú« ¬á¬ «óÑα½Ñ⌐ ºáúαπªÑ¡, ó맮ó ½εí«⌐ Ñú«
- »α«úαá¼¼δ »α«¿ºó«ñ¿Γß∩ Γá¬ªÑ íδßΓα«, ¬á¬ ó맮ó ¡Ñ«óÑα½Ñ⌐¡δσ
- »α«úαá¼¼. ü«½ÑÑ Γ«ú«, ¬«úñá ¼«¡¿Γ«απ «óÑα½ÑÑó ΓαÑíπÑΓß∩ πñ὿Γ∞
- «óÑα½Ñ⌐, τΓ«íδ «ßó«í«ñ¿Γ∞ »á¼∩Γ∞ ñ½∩ ñαπú«ú« «óÑα½Ñ∩, «¡ »δΓáÑΓß∩
- πñ὿Γ∞ ΓÑ «óÑα½Ñ¿, ¬«Γ«αδÑ ¡Ñá¬Γ¿ó¡δ (¬«Γ«αδÑ ¡Ñ ¿¼ÑεΓ á¬Γ¿ó¡δσ
- »α«úαá¼¼ ó ñá¡¡«Ñ óαѼ∩).
- ä½∩ αÑ὿ºáµ¿¿ ßó«Ñ⌐ ΓÑσ¡¿¬¿ π»αáó½Ñ¡¿∩ «óÑα½Ñ∩¼¿, Turbo
- Pascal ΓαÑíπÑΓ, τΓ«íδ éδ ß«í½εñ὿ ñóá ó᪡δσ »αáó¿½á »α¿ ¡á»¿ßá¡¿¿
- ßó«¿σ »α«úαá¼¼:
- - éßÑ «óÑα½Ñ⌐¡δÑ ¼«ñ㫨 ñ«½ª¡δ ¿¼ÑΓ∞ ñ¿αÑ¬Γ¿óπ {$O+}, ¬«Γ«αá∩
- ºáßΓáó½∩ÑΓ ¬«¼»¿½∩Γ«α íδΓ∞ πóÑαÑ¡¡δ¼, τΓ« úÑ¡Ñα¿απѼδ⌐ ¬«ñ ¼«ªÑΓ
- íδΓ∞ «óÑα½Ñ⌐¡δ¼.
- - ä½∩ ó맮óá ½εí«⌐ «óÑα½Ñ⌐¡«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ éδ ñ«½ª¡δ
- úáαá¡Γ¿α«óáΓ∞, τΓ« óßÑ á¬Γ¿ó¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ ¿ß»«½∞ºπεΓ
- ñá½∞¡εε ¼«ñѽ∞ ó맮óá (far call).
-
- Äíá »αáó¿½á íπñπΓ «íΩ∩ߡѡδ ó αáºñÑ½Ñ "Éáºαáí«Γ¬á «óÑα½Ñ⌐¡δσ
- »α«úαá¼¼". æÑ⌐τáß ºá¼ÑΓ¿¼ Γ«½∞¬«, τΓ« éδ ¼«ªÑΓÑ ½Ñú¬« óδ»«½¡¿Γ∞ φΓ¿
- ΓαÑí«óá¡¿∩, óßΓáó½∩∩ ñ¿αÑ¬Γ¿ó𠬫¼»¿½∩Γ«αá {$O+,F+} ó ¡áτὫ
- ¬áªñ«ú« «óÑα½Ñ⌐¡«ú« ¼«ñπ½∩ ¿ ñ¿αÑ¬Γ¿óπ {$F+} ó ¡áτὫ óßÑσ ñαπú¿σ
- ¼«ñπ½Ñ⌐ ¿ ú½áó¡«⌐ »α«úαá¼¼δ.
-
- Åα¿¼Ñτá¡¿Ñ: àß½¿ ñ¿αÑ¬Γ¿óá {$F+} íπñÑΓ »α«»πΘÑ¡á ó «óÑα½Ñ⌐¡«⌐
- »α«úαá¼¼Ñ, Γ« »α¿ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ 󫺡¿¬¡πΓ ¡Ñ»αÑñ߬áºπѼδÑ ¿,
- 󫺼«ª¡«, ¬áΓáßΓα«Σ¿τÑ߬¿Ñ αѺπ½∞ΓáΓδ.
-
- ä¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá {$O ¿¼∩ ¼«ñπ½∩} ¿ß»«½∞ºπÑΓß∩ ó »α«úαá¼¼Ñ
- ñ½∩ π¬áºá¡¿∩, ¬á¬«⌐ ¼«ñπ½∞ ñ«½ªÑ¡ íδΓ∞ «óÑα½Ñ⌐¡δ¼. ¥Γá ñ¿αÑ¬Γ¿óá
- ñ«½ª¡á íδΓ∞ αẼÑΘÑ¡á »«ß½Ñ «»ÑαáΓ«αá uses ó »α«úαá¼¼Ñ, ¿ ó
- «»ÑαáΓ«αÑ uses ßΓá¡ñáαΓ¡δ⌐ ¼«ñπ½∞ Äverlay ñ«½ªÑ¡ ßΓ«∩Γ∞ ñ« ½εí«ú«
- «óÑα½Ñ⌐¡«ú« ¼«ñπ½∩. Åα¿¼Ñα:
-
- programm Editor;
- {$F+} {çáñáΓ∞ ñá½∞¡¿⌐ ó맮ó ñ½∩ óßÑσ »α«µÑñπα ¿ Σπ¡¬µ¿⌐}
-
- uses
- Overlay, Crt, EdInOut, EdFormat, EdPrint, EdFind, EdMain;
-
- {$O EdInOut}
- {$O EdFormat}
- {$O EdPrint}
- {$O EdFind}
- {$O EdMain}
-
- Åα¿¼Ñτá¡¿Ñ: 諼»¿½∩Γ«α óδñáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ, Ñß½¿ éδ
- »δΓáÑΓÑß∞ ßñѽáΓ∞ «óÑα½Ñ⌐¡δ¼ ¼«ñπ½∞, ¬«Γ«αδ⌐ ¡Ñ íδ½ «Γ¬«¼»¿½¿α«óá¡
- ó ß«ßΓ«∩¡¿¿ {$O+}. êº ßΓá¡ñáαΓ¡δσ ¼«ñπ½Ñ⌐ ¼«ªÑΓ íδΓ∞ «óÑα½Ñ⌐¡δ¼
- Γ«½∞¬« ¼«ñπ½∞ Dos; óßÑ «ßΓá½∞¡δÑ ßΓá¡ñáαΓ¡δÑ ¼«ñ㫨 System,
- Overlay, Graph, Crt, Turbo3, Graph3 ¡Ñ ¼«úπΓ íδΓ∞ «óÑα½Ñ⌐¡δ¼¿.
- èα«¼Ñ Γ«ú«, »α«úαá¼¼δ, ß«ñÑαªáΘ¿Ñ «óÑα½Ñ⌐¡δÑ ¼«ñπ½¿, ñ«½ª¡δ íδΓ∞
- «Γ¬«¼»¿½¿α«óá¡δ ¡á ñ¿ß¬; ¬«¼»¿½∩Γ«α óδñáÑΓ «Φ¿í¬π, Ñß½¿ éδ
- »δΓáÑΓÑß∞ «Γ¬«¼»¿½¿α«óáΓ∞ Γá¬¿Ñ »α«úαá¼¼δ ó »á¼∩Γ¿.
-
-
- î«¡¿Γ«α íπΣÑαá «óÑα½ÑÑó.
-
- ÄóÑα½Ñ⌐¡δ⌐ íπΣÑα Turbo Pascal ½πτΦÑ óßÑú« «»¿ßáΓ∞ ¬á¬
- ¬«½∞µÑó«⌐ íπΣÑα, ¬«Γ«αδ⌐ ¿¼ÑÑΓ π¬áºáΓѽ∞ ¡á ¡áτὫ ¿ σó«ßΓ íπΣÑαá.
- ÄóÑα½Ñ¿ óßÑúñá ºáúαπªáεΓß∩ ß ¡áτá½á íπΣÑαá, óδΓὬ¿óá∩ í«½ÑÑ ßΓáαδÑ
- ¬ σó«ßΓπ íπΣÑαá. è«úñá íπΣÑα ºá»«½¡∩ÑΓß∩ (Γ.Ñ. ¬«úñá ¡ÑΓ
- ñ«ßΓáΓ«τ¡«ú« ßó«í«ñ¡«ú« »α«ßΓαá¡ßΓóá ¼Ñªñπ ¡áτὫ¼ ¿ σó«ßΓ«¼),
- «óÑα½Ñ¿ óδΓὬ¿óáεΓß∩ ß ¬«¡µá íπΣÑαá, ñ½∩ Γ«ú« τΓ«íδ «ßó«í«ñ¿Γ∞
- »α«ßΓαá¡ßΓó« ñ½∩ ¡«ó«ú« «óÑα½Ñ∩.
- ū߬«½∞¬π «íδτ¡á∩ »á¼∩Γ∞ ¡Ñ ∩ó½∩ÑΓß∩ µ¿¬½¿τÑ߬«⌐ »« ßó«Ñ⌐
- »α¿α«ñÑ, ñÑ⌐ßΓó¿Γѽ∞¡á∩ αÑ὿ºáµ¿∩ íπΣÑαá «óÑα½ÑÑó ó¬½ετáÑΓ
- ¡Ñ߬«½∞¬« í«½∞ΦÑ Φáú«ó ñ½∩ Γ«ú«, τΓ«íδ »αÑñßΓáó¿Γ∞ íπΣÑα óó¿ñÑ
- ¬«½∞µá. É¿ß. 13.1 ¿½½εßΓα¿απÑΓ φëà »α«µÑßß. É¿ßπ¡«¬ »«¬áºδóáÑΓ
- ñ¿¡á¼¿¬π »«ñúαπº¬¿ «óÑα½ÑÑó ó »αÑñóáα¿Γѽ∞¡« »πßΓ«⌐ íπΣÑα «óÑα½ÑÑó.
- ÄóÑα½Ñ⌐ Ç ºáúαπªáÑΓß∩ »Ñαóδ¼, ºá ¡¿¼ ºáúαπªáÑΓß∩ é, ºá ¡¿¼ - æ ¿
- ¡á¬«¡Ñµ - D. ÆÑ¼¡á∩ «í½áßΓ∞ »«¬áºδóáÑΓ ßó«í«ñ¡«Ñ »α«ßΓαá¡ßΓó«
- íπΣÑαá.
-
- É¿ß. 13.1
- çáúαπº¬á ¿ óδΓὬ¿óá¡¿Ñ «óÑα½ÑÑó.
-
- ÿáú 1 ÿáú 2
- ┌────────────┐ ┌────────────┐
- │ ░░░░░░░░░░ │ │ ░░░░░░░░░░ │
- │ ░░░░░░░░░░ │ │ ░░░░░░░░░░ │
- │ ░░░░░░░░░░ │ │ ░░░░░░░░░░ │
- │ ░░░░░░░░░░ │ ⫽«óá ───÷ ├────────────┤
- │ ░░░░░░░░░░ │ │ ÄóÑα½Ñ⌐ B │
- ⫽«óá ────÷ ├────────────┤ ├────────────┤
- │ ÄóÑα½Ñ⌐ Ç │ │ ÄóÑα½Ñ⌐ Ç │
- òó«ßΓ ────÷ └────────────┘ òó«ßΓ ───÷ └────────────┘
-
-
- ÿáú 3 ÿáú 4
- ┌────────────┐ ┌────────────┐
- │ ░░░░░░░░░░ │ │ ÄóÑα½Ñ⌐ æ │
- │ ░░░░░░░░░░ │ ├────────────┤
- ⫽«óá ────÷ ├────────────┤ │ ÄóÑα½Ñ⌐ é │
- │ ÄóÑα½Ñ⌐ æ │ òó«ßΓ ───÷ ├────────────┤
- ├────────────┤ │ ░░░░░░░░░░ │
- │ ÄóÑα½Ñ⌐ é │ │ ░░░░░░░░░░ │
- ├────────────┤ ⫽«óá ───÷ ├────────────┤
- │ ÄóÑα½Ñ⌐ Ç │ │ ÄóÑα½Ñ⌐ D │
- òó«ßΓ ────÷ └────────────┘ └────────────┘
-
-
- èᬠéδ ¼«ªÑΓÑ ó¿ñÑΓ∞, ¿¡ΓÑαÑßπεΘ¿Ñ ¡áß ß½πτá¿ »«½πτáεΓß∩ »α¿
- »ÑαÑσ«ñÑ «Γ Φáúá 3 ¬ Φáúπ 4. é«-»Ñαóδσ: π¬áºáΓѽ∞ ¡á ¡áτὫ
- »ÑαÑ߬ᬿóáÑΓ τÑαѺ ¡¿ª¡εε úαá¡¿µπ íπΣÑαá «óÑα½ÑÑó, ºáßΓáó½∩∩
- ¼«¡¿Γ«α «óÑα½ÑÑó ßñó¿úáΓ∞ óßÑ ºáúαπªÑ¡¡δÑ «óÑα½Ñ¿ (¿ π¬áºáΓѽ∞ ¡á
- σó«ßΓ) óóÑασ. ¥Γ«Γ ßñó¿ú ¡Ñ«íσ«ñ¿¼ ñ½∩ Γ«ú«, τΓ«íδ ß«σαá¡¿Γ∞
- ßó«í«ñ¡πε «í½áßΓ∞, αáß»«½«ªÑ¡¡πε ¼Ñªñπ π¬áºáΓѽ∩¼¿ ¡á ¡áτὫ ¿ ¡á
- σó«ßΓ. é«-óΓ«αδσ: ñ½∩ Γ«ú«, τΓ«íδ ºáúαπº¿Γ∞ «óÑα½Ñ⌐ D, ¼«¡¿Γ«α
- «óÑα½ÑÑó óδΓὬ¿óáÑΓ «óÑα½Ñ⌐ Ç ¿º σó«ßΓá íπΣÑαá.
- ÄóÑα½Ñ⌐ Ç ó φΓ«¼ ß½πτáÑ ∩ó½∩ÑΓß∩ ßá¼δ¼ αá¡¡¿¼ ¿º ºáúαπªÑ¡¡δσ
- «óÑα½ÑÑó, ¿, ß½Ññ«óáΓѽ∞¡«, ½πτΦ¿¼ óδí«α«¼ ñ½∩ óδΓὬ¿óá¡¿∩, ¬«úñá
- φΓ« ¡Ñ«íσ«ñ¿¼«. î«¡¿Γ«α «óÑα½ÑÑó »α«ñ«½ªáÑΓ óδΓὬ¿óáΓ∞ «óÑα½Ñ¿ ¿º
- σó«ßΓá »«¬á ¡Ñ «ßó«í«ñ¿Γ ¼ÑßΓ« ñ½∩ ¡«ó«ú« «óÑα½Ñ∩ ó ú«½«óÑ íπΣÑαá,
- ¿ ¬áªñδ⌐ αáº, ¬«úñá π¬áºáΓѽ∞ ¡á ¡áτὫ ñ«ßΓ¿úáÑΓ úαá¡¿µδ íπΣÑαá,
- «»Ñαᵿ∩ ßñó¿úá »«óΓ«α∩ÑΓß∩.
- Æá¬ αáí«ΓáÑΓ »« π¼«½τá¡¿ε ¼«¡¿Γ«α «óÑα½ÑÑó Turbo Pascal 6.0.
- Äñ¡á¬«, ¼«¡¿Γ«α «óÑα½ÑÑó Turbo Pascal ¼«ªÑΓ αáí«ΓáΓ∞ ó αѪ¿¼Ñ
- «»Γ¿¼¿ºáµ¿¿.
- ÅαÑñ»«½«ª¿¼, τΓ« «óÑα½Ñ⌐ Ç ß«ñÑαª¿Γ α∩ñ τáßΓ« ¿ß»«½∞ºπѼδσ
- »α«úαá¼¼. äáªÑ, Ñß½¿ φΓ¿ »α«úαá¼¼δ ¿ß»«½∞ºπεΓß∩ óßÑ óαѼ∩, Ç íπñÑΓ
- óßÑúñá óδΓὬ¿óáΓ∞ß∩ ¿º «óÑα½Ñ⌐¡«ú« íπΣÑαá, ó¡«ó∞ ºáúαπªá∩ß∞ τÑαѺ
- ¬«α«Γ¬«Ñ óαѼ∩. Åα«í½Ñ¼á ºñÑß∞ ºá¬½ετáÑΓß∩ ó Γ«¼, τΓ« ¼«¡¿Γ«α
- «óÑα½ÑÑó ¡¿τÑú« ¡Ñ º¡áÑΓ « τáßΓ«ΓÑ ó맮ó«ó »α«úαá¼¼ ¿º Ç - á º¡áÑΓ
- Γ«½∞¬«, τΓ« ¬«úñá ¿ñÑΓ ó맮ó »α«úαá¼¼δ ¿º Ç, ¿ Ç ¡ÑΓ ó »á¼∩Γ¿, «¡
- ñ«½ªÑ¡ ºáúαπº¿Γ∞ Ç. Äñ¡« ¿º αÑΦÑ¡¿⌐ φΓ«⌐ »α«í½Ñ¼δ ¼«ªÑΓ ºá¬½ετáΓß∩
- ó »αÑαδóá¡¿¿ ¬áªñ«ú« ó맮óá »α«úαá¼¼δ ¿º Ç, ¿ Γ«úñá ¬áªñδ⌐ ó맮ó
- »ÑαÑñó¿úáÑΓ Ç ó ú«½«óπ «óÑα½Ñ⌐¡«ú« íπΣÑαá, τΓ«íδ «ΓαếΓ∞ Ñú« ¡«óδ⌐
- ßΓáΓπß, ¬á¬ ßἫú« »«ß½Ññ¡Ñú« ¿ß»«½∞º«óá¡¡«ú« «óÑα½Ñ∩. Æá¬«Ñ
- »αÑαδóá¡¿Ñ ó맮ó«ó, ¬ ß«ªá½Ñ¡¿ε, «τÑ¡∞ ñ«α«ú« ó ß¼δß½Ñ ß¬«α«ßΓ¿
- óδ»«½¡Ñ¡¿∩, ¿ ó ¡Ñ¬«Γ«αδσ ß½πτá∩σ ¼«ªÑΓ ºá¼Ññ½¿Γ∞ »α«úαá¼¼π ñáªÑ
- í«½∞ΦÑ, τѼ «»Ñαᵿ∩ ºáúαπº¬¿ «óÑα½ÑÑó.
- Turbo Pascal «íÑß»Ñτ¿óáÑΓ ¬«¼»α«¼¿ßß¡«Ñ αÑΦÑ¡¿Ñ, ¬«Γ«α«Ñ
- »αá¬Γ¿τÑ߬¿ ¡Ñ ñáÑΓ »«ΓÑα¿ »α«¿ºó«ñ¿Γѽ∞¡«ßΓ¿ ¿ ñ«ßΓ¿úáÑΓ óδß«¬«⌐
- ßΓѻѡ¿ πß»Ñσá »α¿ «»αÑñѽѡ¿¿ τáßΓ« ¿ß»«½∞ºπѼδσ «óÑα½ÑÑó (¬«Γ«αδÑ
- ¡Ñ ñ«½ª¡δ óδΓὬ¿óáΓ∞ß∩): ¬«úñá «óÑα½Ñ⌐ í½¿º«¬ ¬ σó«ßΓπ «óÑα½Ñ⌐¡«ú«
- íπΣÑαá, «¡ »«»áñáÑΓ ¡á "¿ß»δΓá¡¿Ñ". àß½¿, ó« óαѼ∩ φΓ«ú« »Ñα¿«ñá
- ¿ß»δΓá¡¿∩ »α«¿ßσ«ñ¿Γ ó맮ó »α«úαá¼¼δ ¿º «óÑα½Ñ∩, ¿ß»δΓá¡¿Ñ
- "«Γ¼Ñ¡∩ÑΓß∩", «óÑα½Ñ⌐ ¡Ñ íπñÑΓ óδΓ«½¬¡πΓ, ¬«úñá «¡ ñ«ßΓ¿ú σó«ßΓá
- «óÑα½Ñ⌐¡«ú« íπΣÑαá. é¼ÑßΓ« φΓ«ú« «¡ »α«ßΓ« »ÑαÑñó¿úáÑΓß∩ ó ú«½«óπ
- íπΣÑαá, Γ.Ñ. »ÑαÑßѬáÑΓ úαá¡¿µπ ¬«½∞µá «óÑα½Ñ⌐¡«ú« íπΣÑαá. æ ñαπú«⌐
- ßΓ«α«¡δ, Ñß½¿ ¡Ñ í佫 ó맮ó«ó ¬ φΓ«¼π «óÑα½Ñε ó« óαѼ∩ Ñú« »Ñα¿«ñá
- ¿ß»δΓá¡¿⌐, τΓ« ú«ó«α¿Γ « ¡¿º¬«⌐ τáßΓ«ΓÑ ¿ß»«½∞º«óá¡¿∩, «óÑα½Ñ⌐
- óδΓὬ¿óáÑΓß∩, ¬«úñá ñ«ßΓ¿úáÑΓ σó«ßΓá «óÑα½Ñ⌐¡«ú« íπΣÑαá.
- çáΓαáΓδ ¡á ßσѼπ ¿ß»δΓá¡¿⌐/«Γ¼Ñ¡δ, »α¿ ¬«Γ«α«⌐ τáßΓ«
- ¿ß»«½∞ºπѼδÑ «óÑα½Ñ¿ ß«σαá¡∩εΓß∩ ó íπΣÑαÑ «óÑα½ÑÑó, ºá¬½ετáεΓß∩ ó
- »ÑαÑσóáΓδóá¡¿¿ Γ«½∞¬« «ñ¡«ú« ó맮óá ¬áªñδ⌐ αáº, ¬«úñá «óÑα½Ñ⌐
- »α¿í½¿ªáÑΓß∩ ¬ σó«ßΓπ «óÑα½Ñ⌐¡«ú« íπΣÑαá.
- äóÑ ¡«óδÑ »α«úαá¼¼δ ¼«¡¿Γ«αá «óÑα½ÑÑó OvrSetRetry ¿
- OvrGetRetry π»αáó½∩εΓ ¼Ñσá¡¿º¼«¼ ¿ß»δΓá¡¿⌐/«Γ¼Ñ¡δ. OvrSetRetry
- πßΓá¡áó½¿óáÑΓ αẼÑα «í½áßΓ¿ ó íπΣÑαÑ «óÑα½ÑÑó, ó ¬«Γ«α«⌐
- »α«¿ßσ«ñ∩Γ ¿ß»δΓá¡¿∩, á OvrGetRetry ó«ºóαáΘáÑΓ ΓѬπΘπε πßΓá¡«ó¬π.
- àß½¿ «óÑα½Ñ⌐ »«»áñáÑΓ ó¡πΓα∞ »«ß½Ññ¡¿σ OvrGetRetry íá⌐Γ »ÑαÑñ
- σó«ßΓ«¼ íπΣÑαá «óÑα½ÑÑó, «¡ áóΓ«¼áΓ¿τÑ߬¿ »«»áñáÑΓ ¡á ¿ß»δΓá¡¿∩.
- ïεí«Ñ ßó«í«ñ¡«Ñ »α«ßΓαá¡ßΓó« ó íπΣÑαÑ «óÑα½ÑÑó αáßß¼áΓα¿óáÑΓß∩ ¬á¬
- τáßΓ∞ «í½áßΓ¿ ¿ß»δΓá¡¿⌐.
-
-
- è«¡ßΓá¡Γδ ¿ »ÑαѼѡ¡δÑ.
-
- ¥Γ«Γ αáºñѽ ¬αáΓ¬« «»¿ßδóáÑΓ ¬«¡ßΓá¡Γδ ¿ »ÑαѼѡ¡δÑ,
- «»αÑñѽѡ¡δÑ ó ¼«ñπ½Ñ Overlay.
-
-
- OvrResult.
-
- èáªñá∩ »α«µÑñπαá ¼«ñπ½∩ Overlay ó«ºóαáΘáÑΓ ¬«ñ ó«ºóαáΓá ó
- »ÑαѼѡ¡πε OvrResult.
-
- var OvrResult : Integer;
-
- 髺¼«ª¡δÑ ¬«ñδ ó«ºóαáΓá «»αÑñÑ½Ñ¡δ ¬«¡ßΓá¡ΓἿ, «»¿ßá¡¡δ¼¿
- ¡¿ªÑ. è«ñ ¡«½∞ «º¡áτáÑΓ πß»ÑΦ¡δ⌐ ó«ºóαáΓ.
-
- ÅÑαѼѡ¡á∩ OvrResult »«ñ«í¡á ßΓá¡ñáαΓ¡«⌐ Σπ¡¬µ¿¿ IOResult, ºá
- ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« OvrResult ¡Ñ πßΓá¡áó½¿óáÑΓß∩ ó ¡«½∞ »α¿
- «íαáΘÑ¡¿¿ ¬ ¡Ñ⌐. Å«φΓ«¼π, ¡Ñ ¡πª¡« ¬«»¿α«óáΓ∞ OvrResult ó ½«¬á½∞¡πε
- »ÑαѼѡ¡πε »ÑαÑñ ÑÑ »α«óÑᬫ⌐.
-
-
- OvrTrapCount.
-
- var OvrTrapCount : Word;
-
- èáªñδ⌐ αáº, ¬«úñá »α«úαá¼¼á ¿º «óÑα½Ñ∩ »αÑαδóáÑΓß∩ ¼«¡¿Γ«α«¼
- «óÑα½Ñ∩, ½¿í« ¿º-ºá Γ«ú«, τΓ« «óÑα½Ñ∩ ¡ÑΓ ó »á¼∩Γ¿, ½¿í« ¿º-ºá
- Γ«ú«, τΓ« «¡ ¡á ¿ß»δΓá¡¿¿, OvrTrapCount πóѽ¿τ¿óáÑΓß∩. ìáτá½∞¡«Ñ
- º¡áτÑ¡¿Ñ OvrTrapCount ¡«½∞.
-
-
- OvrLoadCount.
-
- var OvrLoadCount : Word;
-
- èáªñδ⌐ αáº, ¬«úñá «óÑα½Ñ⌐ ºáúαπªáÑΓß∩, »ÑαѼѡ¡á∩ OvrLoadCount
- πóѽ¿τ¿óáÑΓß∩ ¡á Ññ¿¡¿µπ. ìáτá½∞¡«Ñ º¡áτÑ¡¿Ñ OvrLoadCount ¡«½∞.
- Åα«óÑᬫ⌐ OvrTrapCount ¿ OvrLoadCount (¡á»α¿¼Ñα, ó «¬¡Ñ
- Watch «Γ½áñτ¿¬á) »α¿ ¿ñÑ¡Γ¿τ¡«¼ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼, éδ ¼«ªÑΓÑ
- π»αáó½∩Γ∞ ñÑ⌐ßΓó¿Ñ¼ «í½áßΓ¿ ¿ß»δΓá¡¿⌐ αẽ¿τ¡δσ αẼÑα«ó
- (πßΓá¡áó½¿óáÑΓß∩ OvrSetRetry) ñ½∩ ¡áσ«ªñÑ¡¿∩ «»Γ¿¼á½∞¡«ú« αẼÑαá
- éáΦÑ⌐ ¬«¡¬αÑΓ¡«⌐ »α«úαá¼¼δ.
-
-
- OvrFileMode.
-
- var OvrFileMode : éyte;
-
- ÅÑαѼѡ¡á∩ OvrFileMode ¿ß»«½∞ºπÑΓß∩ ñ½∩ «»αÑñѽѡ¿∩ ¬«ñá
- ñ«ßΓπ»á, »ÑαÑñáóáѼ«ú« ó DOS, ¬«úñá «Γ¬αδóáÑΓß∩ Σá⌐½ «óÑα½ÑÑó. Å«
- π¼«½τá¡¿ε OvrFileMode ¡«½∞, τΓ« ß««ΓóÑΓßΓóπÑΓ ñ«ßΓπ»π Γ«½∞¬« ñ½∩
- τΓÑ¡¿∩. Åα¿ßóá¿ó᡿Ѽ ¡«ó«ú« º¡áτÑ¡¿∩ OvrFileMode ñ« ó맮óá OvrInit
- éδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ ¬«ñ ñ«ßΓπ»á, ¡á»α¿¼Ñα ñ½∩ Γ«ú«, τΓ«íδ αáºαÑΦ¿Γ∞
- αáß»αÑñѽѡ¡δ⌐ ñ«ßΓπ» ó ßÑΓ¿. ü«½ÑÑ ñÑΓá½∞¡« ß« º¡áτÑ¡¿∩¼¿ ¬«ñ«ó
- ñ«ßΓπ»á ¼«ª¡« «º¡á¬«¼¿Γ∞ß∩ ó éáΦѼ æ»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ
- »α«úαá¼¼¿ßΓá »« DOS.
-
-
- OvrReadBuf.
-
- Type OvrReadFunc = Function(OvrSeg : Word) : Integer;
- var OvrReadBuf : OvrReadFunc;
-
- Åα«µÑñπα¡á∩ »ÑαѼѡ¡á∩ OvrReadBuf »«ºó«½∩ÑΓ éá¼ »ÑαÑσóáΓδóáΓ∞
- «»Ñαᵿ¿ ºáúαπº¬¿ «óÑα½ÑÑó, ¡á»α¿¼Ñα, ñ½∩ «íαáí«Γ¬¿ «Φ¿í«¬ ¿½¿ ñ½∩
- »α«óÑન: »α¿ßπΓßΓóπÑΓ ½¿ ú¿í¬¿⌐ ñ¿ß¬. è«úñá ¼«¡¿Γ«α «óÑα½ÑÑó
- τ¿ΓáÑΓ «óÑα½Ñ⌐, «¡ óδºδóáÑΓ Σπ¡¬µ¿ε, áñαÑß ¬«Γ«α«⌐ ºá»«¼¡Ñ¡ ó
- OvrReadBuf. àß½¿ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡«½∞, ¼«¡¿Γ«α «óÑα½ÑÑó ßτ¿ΓáÑΓ,
- τΓ« «»Ñαᵿ∩ íδ½á πß»ÑΦ¡«⌐. àß½¿ αѺπ½∞ΓáΓ Σπ¡¬µ¿¿ ¡Ñ ¡«½∞,
- úÑ¡Ñα¿απÑΓß∩ «Φ¿í¬á óαѼѡ¿ óδ»«½¡Ñ¡¿∩ 209. Åáαá¼ÑΓα OvrSeg
- »«¬áºδóáÑΓ, τΓ« «óÑα½Ñ⌐ ºáúαπªÑ¡, ¡« ¬á¬ éδ πó¿ñ¿ΓÑ »«ºªÑ, éá¼
- ¡¿¬«úñá ¡Ñ »«¡áñ«í¿Γß∩ ñ«ßΓπ» ¬ φΓ«⌐ ¿¡Σ«α¼áµ¿¿.
-
- Åα¿¼Ñτá¡¿Ñ: éδ ¡¿¬«úñá ¡Ñ ñ«½ª¡δ óδºδóáΓ∞ ½εíπε «óÑα½Ñ⌐¡πε
- »α«úαá¼¼π ¿º éáΦÑ⌐ Σπ¡¬µ¿¿ τΓÑ¡¿∩ «óÑα½Ñ∩. ¥Γ«Γ ó맮ó »α¿óÑñÑΓ ¬
- ¬αáσπ ß¿ßΓѼδ.
-
- ä½∩ Γ«ú«, τΓ«íδ πßΓá¡«ó¿Γ∞ éáΦπ ß«íßΓóÑ¡¡πε Σπ¡¬µ¿ε τΓÑ¡¿∩
- «óÑα½Ñ∩, éδ ñ«½ª¡δ ó¡áτá½Ñ ß«σαá¡¿Γ∞ »αÑñδñπΘÑÑ º¡áτÑ¡¿Ñ OvrReadBuf
- ó »ÑαѼѡ¡«⌐ Γ¿»á OvrReadFunc ¿ ºáΓѼ »α¿ßó«¿Γ∞ éáΦπ Σπ¡¬µ¿ε τΓÑ¡¿∩
- «óÑα½Ñ∩ OvrReadBuf. é¡πΓα¿ éáΦÑ⌐ Σπ¡¬µ¿¿ τΓÑ¡¿∩ éδ ñ«½ª¡δ óδºóáΓ∞
- ß«σαá¡Ñ¡¡πε Σπ¡¬µ¿ε τΓÑ¡¿∩, τΓ«íδ »α«¿ºóÑßΓ¿ ñÑ⌐ßΓó¿Γѽ∞¡πε
- «»Ñαáµ¿ε ºáúαπº¬¿. ïεíδÑ »α«óÑન, ¬«Γ«αδÑ éδ σ«Γ¿ΓÑ »α«¿ºóÑßΓ¿,
- Γá¬¿Ñ ¬á¬ »α«óÑα¬á ¡á ¡á½¿τ¿Ñ ú¿í¬«ú« ñ¿ß¬á, ñ«½ª¡δ íδΓ∞
- »α«¿ºóÑñÑ¡δ ñ« ó맮óá ß«σαá¡Ñ¡¡«⌐ Σπ¡¬µ¿¿ τΓÑ¡¿∩ ¿ »α«óÑα¬á ½εíδσ
- «Φ¿í«¬ ñ«½ª¡á »α«¿ºó«ñ¿Γ∞ß∩ »«ß½Ñ φΓ«ú« ó맮óá.
- è«ñ ñ½∩ πßΓá¡«ó¬¿ Σπ¡¬µ¿¿ «óÑα½ÑÑó ñ«½ªÑ¡ ¡áσ«ñ¿Γ∞ß∩ ßαáºπ
- »«ß½Ñ ó맮óá OvrInit ¿ ó φΓ« óαѼ∩ OvrReadBuf íπñÑΓ ß«ñÑαªáΓ∞ áñαÑß
- ßΓá¡ñáαΓ¡«⌐ Σπ¡¬µ¿¿ τΓÑ¡¿∩ ñ¿ß¬á.
- àß½¿ éδ ΓᬠªÑ óδºδóáÑΓÑ OvrInitEMS, «¡á ¿ß»«½∞ºπÑΓ éáΦπ
- Σπ¡¬µ¿ε τΓÑ¡¿∩ «óÑα½ÑÑó ß ñ¿ß¬á ó EMS-»á¼∩Γ∞, Ñß½¿ ¡Ñ í佫 «Φ¿í«¬,
- «¡á ºá»«¼¿¡áÑΓ áñαÑß ßΓá¡ñáαΓ¡«⌐ Σπ¡¬µ¿¿ τΓÑ¡¿∩ EMS ó OvrReadBuf.
- àß½¿ éδ ΓᬠªÑ ªÑ½áÑΓÑ »ÑαѬαδΓ∞ Σπ¡¬µ¿ε τΓÑ¡¿∩ EMS, »α«ßΓ«
- »«óΓ«α¿ΓÑ »α«µÑßß πßΓá¡«ó¬¿ »«ß½Ñ ó맮óá OvrInitEMS.
- æΓá¡ñáαΓ¡á∩ Σπ¡¬µ¿∩ τΓÑ¡¿∩ ß ñ¿ß¬á ó«ºóαáΘáÑΓ ¡«½∞ ó ß½πτáÑ
- πß»Ñσá ¿ ¬«ñ «Φ¿í¬¿ DOS ó »α«Γ¿ó¡«¼ ß½πτáÑ. ǡὫú¿τ¡«, ßΓá¡ñáαΓ¡á∩
- Σπ¡¬µ¿∩ τΓÑ¡¿∩ EMS ó«ºóαáΘáÑΓ ¡«½∞ ó ß½πτáÑ πß»Ñσá ¿ ¬«ñ «Φ¿í¬¿ EMS
- ó »α«Γ¿ó¡«¼ ß½πτáÑ (º¡áτÑ¡¿Ñ ó ñ¿á»áº«¡Ñ $80 - $FF). è«ñδ «Φ¿í«¬
- DOS ß¼. ó αáºñÑ½Ñ "ÄΦ¿í¬¿ óαѼѡ¿ óδ»«½¡Ñ¡¿∩" ó »α¿½«ªÑ¡¿¿ Ç φΓ«ú«
- απ¬«ó«ñßΓóá »« Turbo Pascal. è«ñδ «Φ¿í«¬ EMS ß¼«Γα¿ ó ߻ѵ¿Σ¿¬áµ¿¿
- αáßΦ¿αÑ¡¡«⌐ »á¼∩Γ¿ LOTUS/INTEL/MICROSOFT.
- æ½ÑñπεΘ¿⌐ Σαáú¼Ñ¡Γ ¬«ñá ñѼ«¡ßΓα¿απÑΓ ¬á¬ »¿ßáΓ∞ ¿
- πßΓá¡áó½¿óáΓ∞ Σπ¡¬µ¿ε τΓÑ¡¿∩ «óÑα½Ñ∩. ì«óá∩ Σπ¡¬µ¿∩ τΓÑ¡¿∩ «óÑα½Ñ∩
- »«ßΓ«∩¡¡« óδºδóáÑΓ ß«σαá¡Ñ¡¡πε Σπ¡¬µ¿ε τΓÑ¡¿∩ «óÑα½ÑÑó ñ« ΓÑσ »«α,
- »«¬á ¡Ñ 󫺡¿¬¡ÑΓ «Φ¿í¬á. ïεíá∩ «Φ¿í¬á »ÑαÑñáÑΓß∩ ó »α«µÑñπαδ
- DOSError ¿½¿ EMSError (¡Ñ »«¬áºá¡¡δÑ ºñÑß∞) Γá¬, τΓ« «¡¿ ¼«úπΓ
- óδñáΓ∞ «Φ¿í¬π »«½∞º«óáΓѽε. çá¼ÑΓ¿¼, τΓ« »áαá¼ÑΓα OvrSeg Γ«½∞¬«
- »ÑαÑñáÑΓß∩ ó ß«σαá¡Ñ¡¡πε Σπ¡¬µ¿ε τΓÑ¡¿∩ «óÑα½ÑÑó ¿ ¡¿¬«úñá »α∩¼« ¡Ñ
- π»αáó½∩ÑΓß∩ ¡«ó«⌐ Σπ¡¬µ¿Ñ⌐ τΓÑ¡¿∩ «óÑα½ÑÑó.
-
- uses Overlay;
- var
- SaveOvrRead: OvrReadFunc;
- UsingEMS: Boolean;
-
- function MyOvrRead(OvrSeg: Word): Integer;
- var
- E: Integer;
- begin
- repeat
- E := SaveOvrRead(OvrSeg);
- if E <> 0 then
- if UsingEms then
- EMSError(E)
- else
- DOSError(E);
- until E = 0;
- MyOvrRead := 0;
- end;
-
- begin
- OvrInit('MYPROG.OVR);
- SaveOvrRead := OvrReadBuf; {ßΓá¡ñáαΓ¡á∩ Σπ¡¬µ¿∩
- ß«σαá¡Ñ¡¿∩ ñ¿ß¬á}
- OvrReadBuf := MyOvrRead; {πßΓá¡«ó¬á ßó«Ñ⌐ Σπ¡¬µ¿¿}
- UsingEMS := False;
- OvrInitEMS;
- if (OvrResult = OvrOk) then
- begin
- SaveOvrRead := OvrReadBuf; {ßΓá¡ñáαΓ¡á∩ Σπ¡¬µ¿∩
- ß«σαá¡Ñ¡¿∩ EMS}
- OvrReadBuf := MyOvrRead; {πßΓá¡«ó¬á ßó«Ñ⌐ Σπ¡¬µ¿¿}
- UsingEMS := True;
- end;
- ...
- end.
-
-
- è«ñδ ó«ºóαáΓá.
-
- ÄΦ¿í¬¿ ¼«ñπ½∩ Overlay óδñáεΓß∩ τÑαѺ »ÑαѼѡ¡πε OvrResult.
- Ä»αÑñѽѡδ ß½ÑñπεΘ¿Ñ ¬«ñδ:
-
- Æáí½¿µá 13.1. ç¡áτÑ¡¿∩ OvrResult.
- ───────────────────────────────────────────────────────────────────
- è«¡ßΓá¡Γá ç¡áτÑ¡¿Ñ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────────
- ovrOK 0 πß»ÑΦ¡«
- ovrError -1 «Φ¿í¬á ¼«¡¿Γ«αá «óÑα½ÑÑó
- ovrNotFound -2 Σá⌐½ «óÑα½ÑÑó ¡Ñ ¡á⌐ñÑ¡
- ovrNoMemory -3 ¡ÑΓ »á¼∩Γ¿ ñ½∩ íπΣÑαá «óÑα½ÑÑó
- ovrIOError -4 «Φ¿í¬á ó/ó «óÑα½Ñ⌐¡«ú« Σá⌐½á
- ovrNoEMSDriver -5 ñαá⌐óÑα EMS ¡Ñ πßΓá¡«ó½Ñ¡
- ovrNoEMSMemory -6 ¡Ññ«ßΓáΓ«τ¡« EMS »á¼∩Γ¿
- ───────────────────────────────────────────────────────────────────
-
-
- Åα«µÑñπαδ ¿ Σπ¡¬µ¿¿.
-
- é ¼«ñπ½Ñ Overlay «»αÑñÑ½Ñ¡δ »α«µÑñπαδ OvrInit, OvrInitEMS,
- OvrSetBuf, OvrClearBuf, OvrSetRetry ¿ Σπ¡¬µ¿¿ OvrGetBuf,
- OvrGetRetry. çñÑß∞ «¡¿ ¬αáΓ¬« «»¿ßá¡δ.
-
-
- OvrInit.
-
- procedure OvrInit(FileName : String);
-
- ê¡¿µ¿á½¿º¿απÑΓ ¼«¡¿Γ«α «óÑα½ÑÑó ¿ «Γ¬αδóáÑΓ «óÑα½Ñ⌐¡δ⌐ Σá⌐½.
- àß½¿ »áαá¼ÑΓα FileName ¡Ñ ºáñáÑΓ πßΓα«⌐ßΓó« ¿½¿ ß»αáó«τ¡¿¬, Γ«
- ¼«¡¿Γ«α «óÑα½ÑÑó ¿ΘÑΓ Σá⌐½ ó ΓѬπΘѼ ß»αáó«τ¡¿¬Ñ, ß»αáó«τ¡¿¬Ñ,
- ß«ñÑαªáΘѼ Σá⌐½ .EXE (»«ñ DOS 3.x) ¿ ó ß»αáó«τ¡¿¬áσ, ºáñá¡¡δσ
- »ÑαѼѡ¡«⌐ ßαÑñδ DOS PATH. 髺¼«ª¡δÑ ¬«ñδ «Φ¿í«¬ OvrError ¿
- OvrNotFound. é ß½πτáÑ «Φ¿í¬¿ ¼«¡¿Γ«α «óÑα½ÑÑó ¡Ñ πßΓá¡áó½¿óáÑΓß∩ ¿
- »«»δΓ¬á óδºóáΓ∞ «óÑα½Ñ⌐¡πε »α«úαá¼¼π íπñÑΓ úÑ¡Ñα¿α«óáΓ∞ ¬«ñ «Φ¿í¬¿
- óαѼѡ¿ óδ»«½¡Ñ¡¿∩ 208.
-
- Åα¿¼Ñτá¡¿Ñ: Åα«µÑñπαá OvrInit ñ«½ª¡á íδΓ∞ óδºóá¡á ñ« ½εí«⌐
- ñαπú«⌐ »α«µÑñπαδ ¼«¡¿Γ«αá «óÑα½ÑÑó.
-
-
- OvrInitEMS.
-
- procedure OvrInitEMS;
-
- àß½¿ 󫺼«ª¡«, ºáúαπªáεΓ «óÑα½Ñ⌐¡δ⌐ Σá⌐½ ó EMS. àß½¿ πß»ÑΦ¡«,
- «óÑα½Ñ⌐¡δ⌐ Σá⌐½ ºá¬αδóáÑΓß∩ ¿ óßÑ »«ß½ÑñπεΘ¿Ñ ºáúαπº¬¿ «óÑα½ÑÑó
- π߬«α∩εΓß∩ ¿º-ºá íδßΓα«⌐ »ÑαÑñáτ¿ ó »á¼∩Γ¿. 髺¼«ª¡δÑ ¬«ñδ «Φ¿í«¬
- OvrError, OvrIOError, OvrNoEmsDriver ¿ OvrNoEmsMemory. î«¡¿Γ«α
- «óÑα½ÑÑó íπñÑΓ »α«ñ«½ªáΓ∞ αáí«ΓáΓ∞, Ñß½¿ OvrInitEMS ó«ºóαáΘáÑΓ
- «Φ¿í¬π, ¡« «óÑα½Ñ¿ íπñπΓ τ¿ΓáΓ∞ß∩ ß ñ¿ß¬á.
- Åα¿¼Ñτá¡¿Ñ: êß»«½∞º«óá¡¿Ñ OvrInitEMS ñ½∩ αẼÑΘÑ¡¿∩ Σá⌐½á
- «óÑα½ÑÑó ó EMS ¡Ñ «Γ¼Ñ¡∩ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ó íπΣÑαÑ «óÑα½ÑÑó. ÄóÑα½Ñ¿
- íπñπΓ ¬«»¿α«óáΓ∞ß∩ ¿º EMS ó "¡«α¼á½∞¡πε" »á¼∩Γ∞ «óÑα½Ñ⌐¡«ú« íπΣÑαá
- ñ« Γ«ú«, ¬á¬ «¡¿ ¼«úπΓ íδΓ∞ óδ»«½¡Ñ¡δ. Äñ¡á¬«, »«ß¬«½∞¬π Γá¬á∩
- »ÑαÑñáτá ó »á¼∩Γ¿ º¡áτ¿Γѽ∞¡« íδß ΓαÑÑ, τѼ τΓÑ¡¿Ñ ß ñ¿ß¬á,
- ΓαÑí«óá¡¿Ñ ¬ πóѽ¿τÑ¡¿ε αẼÑαá íπΣÑαá «óÑα½ÑÑó ßΓá¡«ó∩Γß∩
- º¡áτ¿Γѽ∞¡« ¼Ñ¡∞ΦÑ.
-
-
- OvrSetBuf.
-
- procedure OvrSetBuf(Size : LongInt);
-
- ôßΓá¡áó½¿óáÑΓ αẼÑα «óÑα½Ñ⌐¡«ú« íπΣÑαá. çáñá¡¡δ⌐ αẼÑα
- ñ«½ªÑ¡ íδΓ∞ í«½∞ΦÑ ¿½¿ αáóÑ¡ ¡áτá½∞¡«¼π º¡áτÑ¡¿ε íπΣÑαá «óÑα½ÑÑó, ¿
- ¼Ñ¡∞ΦÑ ¿½¿ αáóÑ¡ º¡áτÑ¡¿ε MemAvail »½εß ΓѬπΘ¿⌐ αẼÑα «óÑα½Ñ⌐¡«ú«
- íπΣÑαá. àß½¿ ºáñá¡¡δ⌐ αẼÑα í«½∞ΦÑ τѼ ΓѬπΘ¿⌐, Γ« ¿º ¡áτá½á ¬πτ¿
- íπñÑΓ óδñѽѡ« ñ«»«½¡¿Γѽ∞¡«Ñ »α«ßΓαá¡ßΓó« (τΓ« π¼Ñ¡∞Φ¿Γ αẼÑα
- ¬πτ¿). àß½¿ ªÑ ºáñá¡¡δ⌐ αẼÑα ¼Ñ¡∞ΦÑ ΓѬπΘÑú«, Γ« ¿º½¿ΦѬ »á¼∩Γ¿
- íπñÑΓ ó«ºóαáΘÑ¡ ó ¬πτπ. OvrSetBuf ΓαÑíπÑΓ, τΓ«íδ ¬πτá íδ½á »πßΓá∩,
- Ñß½¿ ªÑ ñ¿¡á¼¿τÑ߬¿Ñ »ÑαѼѡ¡δÑ í뫨 πªÑ αáß»αÑñѽѡδ τÑαѺ New ¿½¿
- GetMem, íπñÑΓ ó«ºóαáΘÑ¡á «Φ¿í¬á. 髺¼«ª¡δÑ ¬«ñδ «Φ¿í«¬ «vrNoMemory
- ¿ ovrError. î«¡¿Γ«α «óÑα½ÑÑó íπñÑΓ »α«ñ«½ªáΓ∞ αáí«ΓáΓ∞ Ñß½¿
- OvrSetBuf ó«ºóαáΘáÑΓ «Φ¿í¬π, á αẼÑα íπΣÑαá «óÑα½ÑÑó ¡Ñ
- ¿º¼Ñ¡∩ÑΓß∩.
-
-
- OvrGetBuf.
-
- function OvrGetBuf : LongInt;
-
- 髺óαáΘáÑΓ ΓѬπΘ¿⌐ αẼÑα íπΣÑαá «óÑα½ÑÑó. ÅÑαó«¡áτá½∞¡« íπΣÑα
- «óÑα½ÑÑó ¿¼ÑÑΓ ¼¿¡¿¼á½∞¡δ⌐ αẼÑα, ß««ΓóÑΓßΓóπ∩ αẼÑαπ ¡á¿í«½∞ΦÑú«
- «óÑα½Ñ⌐¡«ú« ¼«ñπ½∩. üπΣÑα Γᬫú« αẼÑαá αáß»αÑñѽ∩ÑΓß∩ »α¿ ºá»π߬Ñ
- »α«úαá¼¼δ áóΓ«¼áΓ¿τÑ߬¿.
-
- Åα¿¼Ñτá¡¿Ñ: ¡áτá½∞¡δ⌐ αẼÑα íπΣÑαá ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ 64è,
- »«ß¬«½∞¬π ß«ñÑαª¿Γ ¬«ñ ¿ ¿¡Σ«α¼áµ¿ε ¡áßΓα«⌐¬¿ ñ½∩ ¡á¿í«½∞ΦÑú«
- ¼«ñπ½∩.
-
-
- OvrClearBuf.
-
- procedure OvrClearBuf;
-
- Äτ¿ΘáÑΓ íπΣÑα «óÑα½ÑÑó. éßÑ «óÑα½Ñ⌐¡δÑ ¼«ñπ½¿, ºáúαπªÑ¡¡δÑ ó
- íπΣÑα, óδΓÑß¡∩εΓß∩, τΓ« ºáßΓáó½∩ÑΓ ºáúαπªáΓ∞ »α«úαá¼¼δ, ¡Ñ«íσ«ñ¿¼δÑ
- »α¿ »«ß½ÑñπεΘ¿σ ó맮óáσ ¿º «óÑα½Ñ⌐¡«ú« Σá⌐½á (¿½¿ EMS). àß½¿
- OvrClearBuf ºá»πΘÑ¡ ¿º «óÑα½Ñ⌐¡«ú« ¼«ñπ½∩, Γ« φëà ¼«ñπ½∞ íπñÑΓ
- ¡Ñ¼Ññ½Ñ¡¡« ºáúαπªÑ¡ ß¡«óá, »«ß½Ñ «¬«¡τá¡¿∩ OvrClearBuf. î«¡¿Γ«α
- «óÑα½ÑÑó ¡¿¬«úñá ¡Ñ ΓαÑíπÑΓ, τΓ«íδ éδ óδºδó὿ OvrClearBuf, ¿ ó
- ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿, ¿ß»«½∞º«óá¡¿Ñ φΓ«⌐ »α«µÑñπαδ íπñÑΓ πσπñΦáΓ∞
- »α«¿ºó«ñ¿Γѽ∞¡«ßΓ∞ éáΦÑ⌐ »α«úαá¼¼δ, »«ß¬«½∞¬π »α¿ó«ñ¿Γ ¬
- »ÑαѺáúαπº¬Ñ «óÑα½ÑÑó. OvrClearBuf ó¬½ετÑ¡á ¿ß¬½ετ¿Γѽ∞¡« ñ½∩
- ߻ѵ¿á½∞¡δσ µÑ½Ñ⌐, Γᬿσ ¬á¬ óαѼѡ¡«Ñ «ßó«í«ªñÑ¡¿Ñ »á¼∩Γ¿, ºá¡∩Γ«⌐
- íπΣÑα«¼ «óÑα½ÑÑó.
-
-
- OvrSetRetry.
-
- procedure OvrSetRetry(Size : LongInt);
-
- Åα«µÑñπαá OvrSetRetry πßΓá¡áó½¿óáÑΓ αẼÑα «í½áßΓ¿ ¿ß»δΓá¡¿⌐ ó
- íπΣÑαÑ «óÑα½ÑÑó. àß½¿ «óÑα½Ñ⌐ »«»áñáÑΓ ó¡πΓα∞ Size íá⌐Γ »ÑαÑñ
- σó«ßΓ«¼ íπΣÑαá «óÑα½ÑÑó, «¡ áóΓ«¼áΓ¿τÑ߬¿ ¡áτ¿¡áÑΓ ¿ß»δΓδóáΓ∞ß∩.
- ïεí«Ñ ßó«í«ñ¡«Ñ »α«ßΓαá¡ßΓó« ó íπΣÑαÑ «óÑα½ÑÑó αáßß¼áΓα¿óáÑΓß∩ ¬á¬
- τáßΓ∞ «í½áßΓ¿ ¿ß»δΓá¡¿⌐. ä½∩ ß«ó¼ÑßΓ¿¼«ßΓ¿ ß αá¡¡¿¼¿ óÑαß¿∩¼¿
- ¼«¡¿Γ«αá «óÑα½ÑÑó, αẼÑα «í½áßΓ¿ ¿ß»δΓá¡¿⌐ »« π¼«½τá¡¿ε - 0, »α¿
- φΓ«¼ ¼Ñσá¡¿º¼ ¿ß»δΓá¡¿⌐/«Γ¼Ñ¡δ «Γ¬½ετáÑΓß∩.
- Åα¿¼Ñα ¿ß»«½∞º«óá¡¿∩ OvrSetRetry:
-
- OvrInit('MYPROG.OVR');
- OvrSetBuf(BuferSize);
- OvrSetRetry(BuferSize div 3);
-
- ìÑ ßπΘÑßΓóπÑΓ φ¼»¿α¿τÑ߬«⌐ Σ«α¼π½δ ñ½∩ «»αÑñѽѡ¿∩
- «»Γ¿¼á½∞¡«ú« αẼÑαá «í½áßΓ¿ ¿ß»δΓá¡¿⌐ - «ñ¡á¬« φ¬ß»Ñα¿¼Ñ¡Γδ
- »«¬áºδóáεΓ, τΓ« ½πτΦ¿Ñ αѺπ½∞ΓáΓδ »«½πτáεΓß∩ ó ñ¿á»áº«¡Ñ «Γ 1/3 ñ«
- 1/2 αẼÑαá íπΣÑαá «óÑα½ÑÑó.
-
-
- OvrGetRetry.
-
- function OvrGetRetry : Longint;
-
- öπ¡¬µ¿∩ OvrGetRetry ó«ºóαáΘáÑΓ ΓѬπΘ¿⌐ αẼÑα «í½áßΓ¿
- ¿ß»δΓá¡¿⌐ Γ.Ñ. º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ í佫 πßΓá¡«ó½Ñ¡« »«ß½Ññ¡¿¼ ó맮ó«¼
- OvrSetRetry.
-
-
- 櫺ñá¡¿Ñ «óÑα½Ñ⌐¡δσ »α«úαá¼¼.
-
- ¥Γ«Γ αáºñѽ ñáÑΓ ó᪡πε ¿¡Σ«α¼áµ¿ε »« ß«ºñá¡¿ε «óÑα½Ñ⌐¡δσ
- »α«úαá¼¼. ÆΘáΓѽ∞¡« ¿ºπτ¿ΓÑ Ñú«, »«ß¬«½∞¬π ó«»α«ßδ «íßπªñáѼδÑ
- ºñÑß∞ ª¿º¡Ñ¡¡« ¡Ñ«íσ«ñ¿¼δ ñ½∩ ¡áñѪ¡«⌐ αáí«Γδ «óÑα½Ñ⌐¡δσ »α«úαá¼¼.
-
-
- âÑ¡Ñαᵿ∩ «óÑα½Ñ⌐¡«ú« ¬«ñá.
-
- Turbo Pascal »«ºó«½∩ÑΓ ¼«ñπ½ε íδΓ∞ «óÑα½Ñ⌐¡δ¼, Ñß½¿ «¡ íδ½
- «Γ¬«¼»¿½¿α«óá¡ ß {$O+}. é φΓ«¼ ß½πτáÑ úÑ¡ÑαáΓ«α ¬«ñá ñѽáÑΓ
- ߻ѵ¿á½∞¡δÑ »αÑñ«ßë᫪¡«ßΓ¿ »α¿ »ÑαÑñáτÑ ßΓ᫬«óδσ ¬«¡ßΓá¡Γ ¿½¿
- ¬«¡ßΓá¡Γ ¼¡«ªÑßΓó ¿º «ñ¡«⌐ «óÑα½Ñ⌐¡«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿⌐ ó
- ñαπúπε. ìá»α¿¼Ñα, Ñß½¿ UnitA ß«ñÑαª¿Γ »α«µÑñπαπ ß« ß½ÑñπεΘ¿¼
- «»¿ß᡿Ѽ:
-
- procedure WriteStr(S: String);
-
- ¿ UnitB ß«ñÑαª¿Γ «»ÑαáΓ«α
-
- WriteStr('Hello world...');
-
- Γ« Turbo Pascal »«¼ÑΘáÑΓ ßΓ᫬«óπε ¬«¡ßΓá¡Γπ 'Hello world...'
- ó ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ UnitB ¿ »ÑαÑñáÑΓ π¬áºáΓѽ∞ ó »α«µÑñπαπ WriteStr.
- Äñ¡á¬«, Ñß½¿ «íá ¼«ñπ½∩ «óÑα½Ñ⌐¡δÑ, Γ« φΓ« ¡Ñ íπñÑΓ αáí«ΓáΓ∞,
- »«ß¬«½∞¬π »α¿ ó맮óÑ WriteStr, ¼«ñπ½∞ UnitB ¼«ªÑΓ íδΓ∞ »ÑαѬαδΓ
- ¼«ñπ½Ñ¼ UnitA, τΓ« ßñѽáÑΓ π¬áºáΓѽ∞ ¡ÑóÑα¡δ¼. ä¿αÑ¬Γ¿óá {$O+}
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿ºíѪ᡿∩ Γᬿσ »α«í½Ñ¼; ¬«úñá Turbo Pascal
- ¡áσ«ñ¿Γ ó맮ó «ñ¡«ú« ¼«ñπ½∩, «Γ¬«¼»¿½¿α«óá¡¡«ú« ß {$O+}, ¬«¼»¿½∩Γ«α
- ñѽáÑΓ ¬«»¿ε óßÑσ ¬«¡ßΓá¡Γ ¿º ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá ó« óαѼѡ¡δ⌐ ßΓѬ
- ñ« »ÑαÑñáτ¿ π¬áºáΓѽ∩ ¡á ¡¿σ.
-
- êß»«½∞º«óá¡¿Ñ {$O+} ó ¼«ñπ½Ñ ¡Ñ ºáßΓáó½∩ÑΓ óáß ñѽáΓ∞ Ñú«
- «óÑα½Ñ⌐¡δ¼. ¥Γ« Γ«½∞¬« ºáßΓáó½∩ÑΓ Turbo Pascal «íÑß»Ñτ¿Γ∞, τΓ«íδ
- »α¿ ªÑ½á¡¿¿, ¼«ñπ½∞ ¼«ú íδΓ∞ «óÑα½Ñ⌐¡δ¼. àß½¿ éδ ß«ºñáÑΓÑ ¼«ñπ½∞,
- ¬«Γ«αδ⌐ σ«Γ¿ΓÑ ¿ß»«½∞º«óáΓ∞ ¬á¬ «óÑα½Ñ⌐¡δ⌐ ¿ ¬á¬ ¡Ñ «óÑα½Ñ⌐¡δ⌐,
- ¬«¼»¿½¿απ⌐ΓÑ Ñú« ß {$O+}, τΓ«íδ ¿¼ÑΓ∞ «ñ¡π óÑαß¿ε «ñ¡«ú« ¼«ñπ½∩.
-
-
- äá½∞¡∩∩ ¼«ñѽ∞ ó맮óá.
-
- èᬠ߬áºá¡« αá¡ÑÑ, ñ½∩ ó맮óá ½εí«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ¿º
- ñαπú«ú« ¼«ñπ½∩, éδ ñ«½ª¡δ úáαá¡Γ¿α«óáΓ∞, τΓ« óßÑ »α«µÑñπαδ ¿
- Σπ¡¬µ¿¿, á¬Γ¿ó¡δÑ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ, ¿ß»«½∞ºπεΓ ñá½∞¡εε ¼«ñѽ∞ ó맮óá
- (FAR call).
- ìá»α¿¼Ñα: ÅπßΓ∞ OvrA - »α«µÑñπαá ó «óÑα½Ñ⌐¡«¼ ¼«ñπ½Ñ ¿ MainB ¿
- MainC - »α«µÑñπαδ ó ú½áó¡«⌐ »α«úαá¼¼Ñ. àß½¿ ú½áó¡á∩ »α«úαá¼¼á
- óδºδóáÑΓ MainC, ¬«Γ«αá∩ óδºδóáÑΓ MainB, ¬«Γ«αá∩ ó ßó«ε «τÑαÑñ∞
- óδºδóáÑΓ OvrA, Γ« »α¿ ó맮óÑ OvrA, MainB ¿ MainC á¬Γ¿ó¡δ («¡¿ ÑΘÑ
- ¡Ñ óÑα¡π½¿ π»αáó½Ñ¡¿Ñ ó ú½áó¡πε »α«úαá¼¼π), Γ.Ñ ΓαÑíπÑΓß∩
- ¿ß»«½∞º«óáΓ∞ ñá½∞¡εε ¼«ñѽ∞ ó맮óá.
- ÄíΩ∩ó½Ñ¡¡δÑ ó ú½áó¡«⌐ »α«úαá¼¼Ñ MainB ¿ MainC »« π¼«½τá¡¿ε
- ¿ß»«½∞ºπεΓ í½¿ª¡εε ¼«ñѽ∞ (NEAR call), ó ñá¡¡«¼ ß½πτáÑ ñ«½ª¡á íδΓ∞
- ¿ß»«½∞º«óá¡á ñ¿αÑ¬Γ¿óá {$F+} ñ½∩ π»αáó½Ñ¡¿∩ ñá½∞¡Ñ⌐ ¼«ñѽ¿ ó맮óá.
- Åα«ßΓÑ⌐Φ¿⌐ ß»«ß«í πñ«ó½ÑΓó«αÑ¡¿∩ ΓαÑí«óá¡¿∩ ñá½∞¡Ñ⌐ ¼«ñѽ¿
- ó맮óá, φΓ« »«¼ÑßΓ¿Γ∞ ñ¿αÑ¬Γ¿óπ {$F+} ó ¡áτὫ ú½áó¡«⌐ »α«úαá¼¼δ ¿
- ¬áªñ«ú« ¼«ñπ½∩. ǽ∞ΓÑα¡áΓ¿ó¡«, éδ ¼«ªÑΓÑ πßΓá¡«ó¿Γ∞ ñ¿αÑ¬Γ¿óπ $F ó
- {$F+}, ¿ß»«½∞ºπ∩ ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ ñ¿αÑ¬Γ¿óπ /$F (ñ½∩ ÆÉæ.EXE) ¿½¿
- Äptions/Compiler ó «¬¡Ñ Force Far Calls.
- Å« ßαáó¡Ñ¡¿ε ß« ß¼ÑΦá¡¡δ¼¿ ó맮óἿ í½¿ª¡Ñ⌐ ¿ ñá½∞¡Ñ⌐ ¼«ñѽ¿,
- éδ íπñÑΓÑ ñ«»«½¡¿Γѽ∞¡« ºáΓαáτ¿óáΓ∞: «ñ¡« ñ«»«½¡¿Γѽ∞¡«Ñ ß½«ó« ó
- »á¼∩Γ¿ ßΓÑ¬á ¡á ¬áªñπε á¬Γ¿ó¡πε »α«µÑñπαπ ¿ «ñ¿¡ ñ«»«½¡¿Γѽ∞¡δ⌐
- íá⌐Γ ¡á ¬áªñδ⌐ ó맮ó.
-
-
- ê¡¿µ¿á½¿ºáµ¿∩ ¼«¡¿Γ«αá «óÑα½ÑÑó.
-
- çñÑß∞ »α¿óÑñÑ¡« ¡Ñ߬«½∞¬« »α¿¼Ñα«ó, ¬á¬ ¿¡¿µ¿á½¿º¿α«óáΓ∞
- ¼«¡¿Γ«α «óÑα½ÑÑó. ê¡¿µ¿á½¿ºáµ¿«¡¡δ⌐ ¬«ñ ñ«½ªÑ¡ ßΓ«∩Γ∞ ñ« »Ñαó«ú«
- ó맮óá ½εí«⌐ «óÑα½Ñ⌐¡«⌐ »α«úαá¼¼δ ¿ «íδτ¡« ¡áτ¿¡áÑΓ ú½áó¡πε
- »α«úαá¼¼π.
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ ¬á¬ ¼á½« éδ ñ«½ª¡δ ßñѽáΓ∞, ñ½∩
- ¿¡¿µ¿á½¿ºáµ¿¿ ¼«¡¿Γ«αá «óÑα½ÑÑó:
-
- begin
- OvrInit('EDITOR.OVR');
- end;
-
- çñÑß∞ ¡ÑΓ «íαáí«Γ¬¿ «Φ¿í«¬, ¿ Ñß½¿ ¡Ññ«ßΓáΓ«τ¡« »á¼∩Γ¿ ñ½∩
- íπΣÑαá «óÑα½ÑÑó ¿½¿ «óÑα½Ñ⌐¡δ⌐ Σá⌐½ ¡Ñ ¡á⌐ñÑ¡, Γ« »α¿ »«»δΓ¬Ñ
- óδºóáΓ∞ «óÑα½Ñ⌐¡πε »α«úαá¼¼π 󫺡¿¬¡ÑΓ «Φ¿í¬á 208 (¼«¡¿Γ«α «óÑα½ÑÑó
- ¡Ñ πßΓá¡«ó½Ñ¡).
- ÉáßΦ¿α¿¼ »αÑñδñπΘ¿⌐ »α¿¼Ñα:
-
- begin
- OvrInit('EDITOR.OVR');
- OvrInitEMS;
- end;
-
- é φΓ«¼ ß½πτáÑ, Ñß½¿ ñ½∩ íπΣÑαá «óÑα½ÑÑó ñ«ßΓáΓ«τ¡« »á¼∩Γ¿ ¿
- Ñß½¿ íδ½ ¡á⌐ñÑ¡ Σá⌐½ «óÑα½ÑÑó, ¼«¡¿Γ«α «óÑα½ÑÑó »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ
- EMS »á¼∩Γ¿ ¿ Ñß½¿ «¡á ÑßΓ∞, ºáúαπªáÑΓ «óÑα½Ñ⌐¡δ⌐ Σá⌐½ ó EMS.
- èᬠ߬áºá¡« óδΦÑ, »Ñαó«¡áτá½∞¡« íπΣÑα «óÑα½ÑÑó ñѽáÑΓß∩ ¬á¬
- ¼«ª¡« ¼Ñ¡∞ΦÑ, ¿½¿ Γ«τ¡ÑÑ, ñ«ßΓáΓ«τ¡« í«½∞Φ¿¼, τΓ«íδ ó¼ÑΘáΓ∞
- ¡á¿í«½∞Φ¿⌐ «óÑα½Ñ⌐. ¥Γ« ¼«ªÑΓ íδΓ∞ ¡«α¼á½∞¡δ¼ ñ½∩ í«½∞Φ¿¡ßΓóá
- »α«úαá¼¼, ¡« »αÑñßΓáó∞ΓÑ ß¿Γπᵿε, ¬«úñá ¬á¬á∩-Γ« Σπ¡¬µ¿∩
- αÑ὿º«óá¡á ñóπ¼∩ ¿½¿ í«½ÑÑ ¼«ñπ½∩¼¿, ¬áªñδ⌐ ¿º ¬«Γ«αδσ «óÑα½Ñ⌐¡δ⌐.
- àß½¿ «íΘ¿⌐ αẼÑα φΓ¿σ ¼«ñπ½Ñ⌐ í«½∞ΦÑ τѼ αẼÑα í«½∞ΦÑú« ¼«ñπ½∩,
- Γ« »α¿ τáßΓ«¼ «íαáΘÑ¡¿¿ «ñ¡«ú« ¼«ñπ½∩ ¬ ñαπú«¼π íπñÑΓ »α¿ó«ñ¿Γ∞ ¬
- º¡áτ¿Γѽ∞¡«¼π «íΩѼπ ßó«»»¿¡úá (»«ñ¬áτ¬¿).
- ÉÑΦÑ¡¿Ñ «τÑó¿ñ¡« - πóѽ¿τ¿Γ∞ «íΩѼ íπΣÑαá «óÑα½ÑÑó Γá¬, τΓ«íδ
- ó ½εí«⌐ ¼«¼Ñ¡Γ í佫 ñ«ßΓáΓ«τ¡« »á¼∩Γ¿ ñ½∩ ß«ñÑαªá¡¿∩ óßÑσ «óÑα½ÑÑó,
- ¬«Γ«αδÑ τáßΓ« óδºδóáεΓ ñαπú ñαπúá.
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ ¿ß»«½∞º«óá¡¿Ñ OvrSetBuf ñ½∩
- πóѽ¿τÑ¡¿∩ αẼÑαá íπΣÑαá:
-
- const
- OvrMaxSize = 80000;
- begin
- OvrInit('EDITOR.OVR');
- OvrInitEMS;
- OvrSetBuf(OvrMaxSize);
- end;
-
- ìÑ ßπΘÑßΓóπÑΓ «íΘÑ⌐ Σ«α¼π½δ ñ½∩ «»αÑñѽѡ¿∩ ¿ñÑá½∞¡«ú« αẼÑαá
- íπΣÑαá «óÑα½ÑÑó. Æ«½∞¬« σ«α«ΦÑÑ º¡á¡¿Ñ »α«úαá¼¼δ ¿ ¡Ñí«½∞Φ«⌐
- φ¬ß»Ñα¿¼Ñ¡Γ »«ºó«½∩ÑΓ óδíαáΓ∞ »α¿Ñ¼½Ñ¼«Ñ º¡áτÑ¡¿Ñ.
-
- Åα¿¼Ñτá¡¿Ñ: ¿ß»«½∞º«óá¡¿Ñ OvrInitEMS ñ½∩ »«¼ÑΘÑ¡¿∩ «óÑα½Ñ⌐¡«ú«
- Σá⌐½á ó EMS, ¡Ñ ß«¬αáΘáÑΓ ΓαÑí«óá¡¿⌐ ¬ íπΣÑαπ «óÑα½ÑÑó. ÄóÑα½Ñ¿,
- »αѪñÑ, τѼ «¡¿ ¼«úπΓ íδΓ∞ óδ»«½¡Ñ¡δ, ñ«½ª¡δ íδΓ∞ ߬«»¿α«óá¡δ ¿º
- EMS ó "¡«α¼á½∞¡πε" »á¼∩Γ∞ íπΣÑαá «óÑα½ÑÑó. Äñ¡á¬«, »«ß¬«½∞¬π
- »ÑαÑß佬á ó »á¼∩Γ¿ º¡áτ¿Γѽ∞¡« íδßΓαÑÑ, τѼ ß ñ¿ß¬á, ΓαÑí«óá¡¿Ñ ¬
- πóѽ¿τÑ¡¿ε αẼÑαá íπΣÑαá «óÑα½ÑÑó ßΓá¡«ó¿Γß∩ ¼Ñ¡∞ΦÑ.
-
- Å«¼¡¿ΓÑ, τΓ« OvrSetBuf πóѽ¿τ¿óáÑΓ íπΣÑα «óÑα½ÑÑó, ß«¬αáΘá∩
- ¬πτπ. æ½Ññ«óáΓѽ∞¡« ¬πτá ñ«½ª¡á íδΓ∞ »πßΓ«⌐, ¿¡áτÑ OvrSetBuf ¡Ñ
- íπñÑΓ αáí«ΓáΓ∞. àß½¿ éδ ¿ß»«½∞ºπÑΓÑ ¼«ñπ½∞ Graph, éδ ñ«½ª¡δ íδΓ∞
- πóÑαÑ¡δ ó Γ«¼, τΓ« éδ óδºó὿ OvrSetBuf ñ« ó맮óá InitGraph,
- ¬«Γ«αδ⌐ αáß»αÑñѽ∩ÑΓ »á¼∩Γ∞ ó ¬πτÑ.
- Åα¿óÑñѼ ñÑΓá½∞¡δ⌐ »α¿¼Ñα ¿¡¿µ¿á½¿ºáµ¿¿ ¼«¡¿Γ«αá «óÑα½ÑÑó ß
- »«½¡«⌐ »α«óÑᬫ⌐ «Φ¿í«¬:
-
- ߫nst
- OvrMaxSize = 80000;
- var
- OvrName: String[79];
- Size: Longint;
- begin
- OvrName := 'EDITOR.OVR';
- repeat
- OvrInit(OvrName);
- if OvrResult = OvrNotFound then
- begin
- WriteLn('OóÑα½Ñ⌐¡δ⌐ Σá⌐½ ¡Ñ ¡á⌐ñÑ¡:', OvrName, '.');
- Write('BóÑñ¿ΓÑ »αáó¿½∞¡«Ñ ¿¼∩ «óÑα½Ñ⌐¡«ú« Σá⌐½á: ');
- ReadLn(OvrName);
- end;
- until OvrResult <> OvrNotFound;
- if OvrResult <> OvrOk then
- begin
- WriteLn('OΦ¿í¬á ¼«¡¿Γ«α«á «óÑα½ÑÑó.');
- Halt(1);
- end;
- OvrInitEMS;
- if OvrResult <> OvrOk then
- begin
- case OvrResult of
- ovrIOError: Write('OΦ¿í¬á ó/ó «óÑα½Ñ⌐¡«ú« Σá⌐½á');
- ovrNoEMSDriver: Write('EMS ñαá⌐óÑα ¡Ñ πßΓá¡«ó½Ñ¡');
- ovrNoEMSMemory: Write('HÑñ«ßΓáΓ«τ¡« EMS »á¼∩Γ¿');
- end;
- Write('H᪼¿ΓÑ óó«ñ...');
- ReadLn;
- end;
- OvrSetBuf(OvrMaxSize);
- end;
-
- àß½¿ ¿¼∩ «óÑα½Ñ⌐¡«ú« Σá⌐½á ¡Ñ óÑα¡«, Γ« »«½∞º«óáΓѽε óδñáÑΓß∩
- »«ñ߬Ậá ñ½∩ óó«ñá ¬«ααÑ¬Γ¡«ú« ¿¼Ñ¡¿.
- çáΓѼ »α«óÑα∩ÑΓß∩ ¡ÑΓ ½¿ ñαπú¿σ «Φ¿í«¬ ¿¡¿µ¿á½¿ºáµ¿¿. àß½¿
- «í¡áαπªÑ¡á «Φ¿í¬á, »α«úαá¼¼á ºáóÑαΦáÑΓß∩, »«ß¬«½∞¬π «Φ¿í¬¿ ó
- OvrInit ∩ó½∩εΓß∩ ΣáΓá½∞¡δ¼¿ (Ñß½¿ ¿σ »α«¿ú¡«α¿α«óáΓ∞, 󫺡¿¬¡ÑΓ
- «Φ¿í¬á »α¿ ó맮óÑ »Ñαó«⌐ «óÑα½Ñ⌐¡«⌐ »α«úαá¼¼δ).
- Å«ß½Ñ πß»ÑΦ¡«⌐ ¿¡¿µ¿á½¿ºáµ¿¿, óδº«ó«¼ OvrInitEMS ñѽáÑΓß∩
- »«»δΓ¬á ºáúαπº¿Γ∞ Σá⌐½ «óÑα½ÑÑó ó EMS Ñß½¿ φΓ« 󫺼«ª¡«. é ß½πτáÑ
- «Φ¿í¬¿ óδñáÑΓß∩ ñ¿áú¡«ßΓ¿τÑ߬«Ñ ß««íΘÑ¡¿Ñ, ¡« »α«úαá¼¼á ¡Ñ
- ºáóÑαΦáÑΓß∩, ó¼ÑßΓ« φΓ«ú« »α«úαá¼¼á íπñÑΓ »α«ñ«½ªáΓ∞ τ¿ΓáΓ∞ «óÑα½Ñ¿
- ß ñ¿ß¬á.
- ìᬫ¡Ñµ OvrSetBuf πßΓá¡áó½¿óáÑΓ »α¿Ñ¼½Ñ¼δ⌐ αẼÑα íπΣÑαá
- «óÑα½ÑÑó. ¥Γ«Γ αẼÑα «»αÑñѽ∩ÑΓß∩ »πΓѼ á¡á½¿ºá ¿
- φ¬ß»Ñα¿¼Ñ¡Γ¿α«óá¡¿∩ ß ¬«¡¬αÑΓ¡«⌐ »α«úαá¼¼«⌐. ÄΦ¿í¬¿ OvrSetBuf
- ¿ú¡«α¿απεΓß∩, σ«Γ∩ OvrResult ¼«ªÑΓ ß«ñÑαªáΓ∞ ¬«ñ -3 (OvrNoMemory).
- àß½¿ »á¼∩Γ¿ ¡Ñ σóáΓ¿½«, ¼«¡¿Γ«α «óÑα½ÑÑó íπñÑΓ »α«ñ«½ªáΓ∞
- ¿ß»«½∞º«óáΓ∞ ¼¿¡¿¼á½∞¡δ⌐ íπΣÑα, αáß»αÑñѽѡ¡δ⌐ »α¿ ßΓáαΓÑ
- »α«úαá¼¼δ.
-
-
- ê¡¿µ¿á½¿ºáµ¿«¡¡á∩ τáßΓ∞ ó «óÑα½Ñ⌐¡δσ ¼«ñπ½∩σ.
-
- èᬠ¿ ßΓáΓ¿τÑ߬¿Ñ ¼«ñπ½¿, «óÑα½Ñ⌐¡δÑ ¼«ñ㫨 ¼«úπΓ ¿¼ÑΓ∞
- ¿¡¿µ¿á½¿ºáµ¿«¡¡πε τáßΓ∞. ò«Γ∩ ¿¡¿µ¿á½¿ºáµ¿«¡¡δ⌐ ¬«ñ «óÑα½Ñ⌐¡«ú«
- ¼«ñπ½∩ ¡Ñ «Γ½¿τáÑΓß∩ «Γ ¡«α¼á½∞¡«ú« «óÑα½Ñ⌐¡«ú« ¬«ñá, ¼«¡¿Γ«α
- «óÑα½ÑÑó ñ«½ªÑ¡ íδΓ∞ ¿¡¿µ¿á½¿º¿α«óá¡ »Ñαóδ¼, ΓᬠτΓ«íδ «¡ ¼«ú
- ºáúαπº¿Γ∞ ¿ óδ»«½¡¿Γ∞ «óÑα½Ñ⌐¡δ⌐ ¼«ñπ½∞.
- 髺óαáΘá∩ß∞ ¬ »α«úαá¼¼Ñ Editor, »αÑñ»«½«ª¿¼, τΓ« ¼«ñπ½¿
- EdInOut ¿ EdMain ¿¼ÑεΓ ¿¡¿µ¿á½¿ºáµ¿«¡¡δ⌐ ¬«ñ. ¥Γ« ΓαÑíπÑΓ, τΓ«íδ
- OvrInit íδ½ óδºóá¡ ñ« ¿¡¿µ¿á½¿ºáµ¿«¡¡«ú« ¬«ñá EdInOut. ä½∩ φΓ«ú«
- ÑßΓ∞ Γ«½∞¬« «ñ¿¡ »πΓ∞ - ß«ºñáΓ∞ ñ«»«½¡¿Γѽ∞¡δ⌐ ¡Ñ«óÑα½Ñ⌐¡δ⌐ ¼«ñπ½∞,
- ¬«Γ«αδ⌐ ßΓ«¿Γ ñ« EdInOut ¿ óδºδóáÑΓ OvrInit ó ßó«Ñ⌐
- ¿¡¿µ¿á½¿ºáµ¿«¡¡«⌐ τáßΓ¿:
-
- unit EdInit;
- interface
- implementation
- uses Overlay;
- const
- OvrMaxSize = 80000;
- begin
- OvrInit('EDITOR.OVR');
- OvrInitEMS;
- OvrSetBuf(OvrMaxSize);
- end.
-
- î«ñπ½∞ EdInit ñ«½ªÑ¡ ßΓ«∩Γ∞ ó «»ÑαáΓ«αÑ uses »α«úαá¼¼δ ñ«
- ½εí«ú« «óÑα½Ñ⌐¡«ú« ¼«ñπ½∩:
-
- program Editor;
- {$F+}
- uses Overlay, Crt, Dos, EdInit, EdInOut, EdFormat, EdPrint,
- EdFind, EdMain;
- {$O EdInOut}
- {$O EdFormat}
- {$O EdPrint}
- {$O EdFind}
- {$O EdMain}
-
- ò«Γ∩ ¿¡¿µ¿á½¿ºáµ¿«¡¡á∩ τáßΓ∞ ó «óÑα½Ñ⌐¡δσ ¼«ñπ½∩σ ñ«»πßΓ¿¼á,
- ÑÑ ß½ÑñπÑΓ ¿ºíÑúáΓ∞ »« α∩ñπ »α¿τ¿¡.
- é«-»Ñαóδσ, σ«Γ∩ ¿¡¿µ¿á½¿ºáµ¿«¡¡δ⌐ ¬«ñ óδ»«½¡∩ÑΓß∩ Γ«½∞¬« «ñ¿¡
- αáº, «¡ ∩ó½∩ÑΓß∩ τáßΓ∞ε «óÑα½Ñ∩, ¿ ºá¡¿¼áÑΓ »á¼∩Γ∞ íπΣÑαá «óÑα½ÑÑó
- »α¿ ºáúαπº¬Ñ «óÑα½Ñ⌐¡«ú« ¼«ñπ½∩. é«-óΓ«αδσ, Ñß½¿ α∩ñ «óÑα½Ñ⌐¡δσ
- ¼«ñπ½Ñ⌐ ß«ñÑαª¿Γ ¿¡¿µ¿á½¿ºáµ¿«¡¡πε τáßΓ∞, ¬áªñδ⌐ ¿º φΓ¿σ ¼«ñπ½Ñ⌐
- íπñÑΓ τ¿ΓáΓ∞ß∩ ó »á¼∩Γ∞ »α¿ ßΓáαΓÑ »α«úαá¼¼δ.
- â«αáºñ« ½πτΦ¿¼ ∩ó½∩ÑΓß∩ óáα¿á¡Γ, ¬«úñá óßÑ ¿¡¿µ¿á½¿ºáµ¿«¡¡δÑ
- ¬«ñδ ß«í¿αáεΓß∩ ó «ñ¿¡ ¿¡¿µ¿á½¿ºáµ¿«¡δ⌐ «óÑα½Ñ⌐¡δ⌐ ¼«ñπ½∞, ¬«Γ«αδ⌐
- óδºδóáÑΓß∩ ó ¡áτá½Ñ »α«úαá¼¼δ ¿ í«½ÑÑ ¡¿úñÑ.
-
-
- ùΓ« ¡Ñ½∞º∩ ó «óÑα½ÑÑ.
-
- ìѬ«Γ«αδÑ ¼«ñ㫨 ¡Ñ ¼«úπΓ íδΓ∞ «óÑα½Ñ⌐¡δ¼¿. é τáßΓ¡«ßΓ¿, ¡Ñ
- »δΓá⌐ΓÑß∞ ßñѽáΓ∞ «óÑα½Ñ⌐¡δ¼¿ ß½ÑñπεΘ¿Ñ ¼«ñ㫨 :
-
- - î«ñπ½¿, ¬«¼»¿½¿α«óá¡¡δÑ ó ß«ßΓ«∩¡¿¿ {$O-}. 諼»¿½∩Γ«α óδñáßΓ
- «Φ¿í¬π, Ñß½¿ éδ »«»δΓáÑΓÑß∞ ßñѽáΓ∞ «óÑα½Ñ⌐¡δ¼ ¼«ñπ½∞, ¬«Γ«αδ⌐ ¡Ñ
- íδ½ «Γ¬«¼»¿½¿α«óá¡ ó ß«ßΓ«∩¡¿¿ {$O+}. Æá¬¿¼¿ ¡Ñ«óÑα½Ñ⌐¡δ¼¿ ¼«ñπ½∩¼¿
- ∩ó½∩εΓß∩ System, Overlay, Crt, Graph, Turbo3, Graph3. (Åα¿¼Ñτá¡¿Ñ
- »ÑαÑó«ñτ¿¬á: î«ñπ½∞ Dos Γ«ªÑ ¡Ñ ¼«ªÑΓ íδΓ∞ «óÑα½Ñ⌐¡δ¼).
-
- - î«ñπ½¿, ¬«Γ«αδÑ ß«ñÑαªáΓ «íαáí«Γτ¿¬¿ »αÑαδóá¡¿⌐. êº-ºá
- ¡ÑαÑÑ¡ΓÑαáíѽ∞¡«⌐ ßΓαπ¬Γπαδ DOS ¼«ñπ½∞, ¬«Γ«αδ⌐ αÑ὿ºπÑΓ interrupt
- »α«µÑñπαδ, ¡Ñ ñ«½ªÑ¡ íδΓ∞ «óÑα½Ñ⌐¡δ¼. ìá»α¿¼Ñα, Γᬿ¼ ¼«ñπ½Ñ¼
- ∩ó½∩ÑΓß∩ Crt, ¬«Γ«αδ⌐ αÑ὿ºπÑΓ «íαáí«Γτ¿¬ »αÑαδóá¡¿∩ Ctrl-Break.
-
- - çáαÑú¿ßΓα¿α«óá¡¡δÑ ß »«¼«Θ∞ε RegisterBGIdriver ¿½¿
- RegisterBGIfont BGI ñαá⌐óÑαδ ¿½¿ Φα¿ΣΓδ.
-
- î«¡¿Γ«α «óÑα½ÑÑó ó Turbo Pascal »«½¡«ßΓ∞ε »«ññÑনóáÑΓ ó맮ó
- «óÑα½Ñ⌐¡δσ »α«úαá¼¼ τÑαѺ π¬áºáΓѽ¿ ¡á »α«µÑñπαδ. Åα¿¼ÑαἿ Γᬿσ
- π¬áºáΓѽÑ⌐ »α«µÑñπα ∩ó½∩εΓß∩: »α«µÑñπαδ óδσ«ñá ¿ ñαá⌐óÑαδ πßΓα«⌐ßΓó
- ΓѬßΓ«óδσ Σá⌐½«ó.
- èα«¼Ñ Γ«ú«, »ÑαÑñáτá «óÑα½Ñ⌐¡δσ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ¬á¬
- »áαá¼ÑΓα«ó »α«µÑñπα¡«ú« Γ¿»á ¿ »α¿ßóá¿óá¡¿Ñ «óÑα½Ñ⌐¡δσ »α«µÑñπα ¿
- Σπ¡¬µ¿⌐ »ÑαѼѡ¡δ¼ »α«µÑñπα¡«ú« Γ¿»á ΓᬠªÑ »«½¡«ßΓ∞ε
- »«ññÑনóáÑΓß∩.
-
-
- ÄΓ½áñ¬á «óÑα½ÑÑó.
-
- ü«½∞Φ¿¡ßΓó« «Γ½áñτ¿¬«ó »«ññÑনóáεΓ «τÑ¡∞ «úαá¡¿τÑ¡¡δÑ
- ß»«ß«í¡«ßΓ¿ «Γ½áñ¬¿ «óÑα½ÑÑó. é Turbo Pascal ¿ Turbo Debugger φΓ«
- ¡Ñ Γá¬. ê¡ΓÑúα¿α«óá¡¡δ⌐ «Γ½áñτ¿¬ »«½¡«ßΓ∞ε »«ññÑনóáÑΓ »«Φáú«ó«Ñ
- óδ»«½¡Ñ¡¿Ñ ¿ Γ«τ¬¿ »αÑαδóá¡¿∩ ó «óÑα½Ñ∩σ. êß»«½∞ºπ∩ «óÑα½Ñ¿, óδ
- ¼«ªÑΓÑ ½Ñú¬« αáºαáíáΓδóáΓ∞ ¿ «Γ½áª¿óáΓ∞ «úα«¼¡δÑ »α«úαá¼¼δ ¿º
- ¿¡ΓÑúα¿α«óá¡¡«⌐ ßαÑñδ Turbo Pascal ¿½¿ Turbo Debugger.
-
-
- é¡ÑΦ¡¿Ñ »α«úαá¼¼δ ó «óÑα½Ñ∩σ.
-
- Æá¬ ªÑ ¬á¬ ¿ «íδτ¡δÑ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿ Åá߬á½∩, ó¡ÑΦ¡¿Ñ
- »α«úαá¼¼δ, ¡á»¿ßá¡¡δÑ ¡á ÇßßѼí½ÑαÑ, ñ«½ª¡δ ß««ΓóÑΓßΓó«óáΓ∞
- «»αÑñѽѡ¡δ¼ »αáó¿½á¼ »α«úαá¼¼¿α«óá¡¿∩, τΓ«íδ αáí«ΓáΓ∞ ¬«ααÑ¬Γ¡« ß
- ¼«¡¿Γ«α«¼ «óÑα½ÑÑó.
- àß½¿ »α«úαá¼¼á ¡á ÇßßѼí½ÑαÑ óδºδóáÑΓ ½ ε í π ε «óÑα½Ñ⌐¡πε
- »α«µÑñπαπ ¿½¿ Σπ¡¬µ¿ε, ÇßßѼí½Ñα¡á∩ »α«úαá¼¼á ñ«½ª¡á ¿ß»«½∞º«óáΓ∞
- ñá½∞¡εε ¼«ñѽ∞ ó맮óá ¿ ñ«½ª¡á πßΓá¡áó½¿óáΓ∞ ßΓѬ, ¿ß»«½∞ºπ∩
- αÑú¿ßΓα éÉ. ìá»α¿¼Ñα, »αÑñ»«½«ª¿¼, τΓ« «óÑα½Ñ⌐¡á∩ »α«µÑñπαá
- OtherProc ¡áσ«ñ¿Γß∩ ó ñαπú«¼ ¼«ñπ½Ñ ¿ τΓ« ÇßßѼí½Ñα¡á∩ »α«úαá¼¼á
- ExternProc óδºδóáÑΓ ÑÑ. Æ«úñá ExternProc ñ«½ª¡á íδΓ∞ ñá½∞¡Ñ⌐ ¼«ñѽ¿
- (far) ¿ ñ«½ª¡á πßΓá¡áó½¿óáΓ∞ ßΓѬ:
-
- ExternProc PROC FAR
-
- push bp ; ß«σαá¡¿Γ∞ BP
- mov bp,sp ; πßΓá¡«ó¿Γ∞ ßΓѬ
- sub sp,LocalSize ; αáß»αÑñѽ¿Γ∞ ½«¬á½∞¡δÑ
- ; »ÑαѼѡ¡δÑ
- ...
- call OtherProc ; óδºóáΓ∞ ñαπú«⌐ «óÑα½Ñ⌐¡δ⌐
- ; ¼«ñπ½∞
- ...
- mov sp,bp ; πñ὿Γ∞ ½«¬á½∞¡δÑ
- ; »ÑαѼѡ¡δÑ
- pop bp ; ó«ßßΓá¡«ó¿Γ∞ BP
- ret ParamSize ; ó«ºóαáΓ
-
- ExternProc ENDP
-
- úñÑ LocalSize - αẼÑα ½«¬á½∞¡δσ »ÑαѼѡ¡δσ ¿ ParamSize -
- αẼÑα »áαá¼ÑΓα«ó. àß½¿ LocalSize = 0, Γ« ßΓ᫬¿ ß αáß»αÑñѽѡ¿Ñ¼ ¿
- πñá½Ñ¡¿Ñ¼ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ ¼«ª¡« «»πßΓ¿Γ∞.
- ¥Γ¿ ΓαÑí«óá¡¿∩ «ßΓá¡πΓß∩ Γᬿ¼¿ ªÑ, Ñß½¿ ExternProc ñѽáÑΓ
- ¡Ñ»α∩¼«⌐ ó맮ó «óÑα½Ñ⌐¡δσ »α«µÑñπα ¿½¿ Σπ¡¬µ¿⌐. ìá»α¿¼Ñα, Ñß½¿
- OtherProc óδºδóáÑΓ «óÑα½Ñ⌐¡δÑ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, ¡« ßá¼á ¡Ñ
- «óÑα½Ñ⌐¡á∩, Γ« ExternProc Γá¬ªÑ ñ«½ª¡á ¿ß»«½∞º«óáΓ∞ ñá½∞¡εε ¼«ñѽ∞
- ó맮óá ¿ πßΓá¡áó½¿óáΓ∞ ßΓѬ.
- é ß½πτáÑ, ¬«úñá ÇßßѼí½Ñα¡á∩ »α«úαá¼¼á ¡Ñ ñѽáÑΓ »α∩¼«ú« ¿½¿
- ¡Ñ»α∩¼«ú« ó맮óá «óÑα½Ñ⌐¡«⌐ »α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿, ߻ѵ¿á½∞¡δσ
- ΓαÑí«óá¡¿⌐ ¬ ¡Ñ⌐ ¡Ñ »αÑñΩ∩ó½∩ÑΓß∩: ÇßßѼí½Ñα¡á∩ »α«úαá¼¼á
- ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ í½¿ª¡εε ¼«ñѽ∞ ó맮óá (near) ¿ ¡Ñ πßΓá¡áó½¿óáÑΓ
- ßΓѬ.
- ÄóÑα½Ñ⌐¡á∩ ÇßßѼí½Ñα¡á∩ »α«úαá¼¼á ¡Ñ ñ«½ª¡á ß«ºñáóáΓ∞ »ÑαѼѡ
- ¡δÑ ó ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ, »«ß¬«½∞¬π ½εíδÑ ¼«ñ¿Σ¿¬áµ¿¿, ßñѽᡡδÑ ó
- «óÑα½Ñ⌐¡«¼ ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ, íπñπΓ »«ΓÑα∩¡δ, ¬«úñá «óÑα½Ñ⌐ íπñÑΓ
- πñá½Ñ¡. èα«¼Ñ Γ«ú«, º¡áτÑ¡¿∩ π¬áºáΓѽÑ⌐ ¡á «íΩѬΓδ, ¡áσ«ñ∩Θ¿Ñß∩ ó
- «óÑα½Ñ⌐¡«¼ ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ, ¼«úπΓ ¿º¼Ñ¡∩Γ∞ß∩ »«ß½Ñ ó맮óá ñαπú¿σ
- «óÑα½ÑÑó, »«ß¬«½∞¬π ¼«¡¿Γ«α «óÑα½ÑÑó ßó«í«ñ¡« »ÑαѼÑΘáÑΓ ¿ πñá½∩ÑΓ
- «óÑα½Ñ⌐¡δÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ.
-
-
- ÄóÑα½Ñ¿ ó .EXE Σá⌐½áσ.
-
- Turbo Pascal »αÑñ«ßΓáó½∩ÑΓ ó«º¼«ª¡«ßΓ∞ ß«σαá¡¿Γ∞ éáΦ¿ «óÑα½Ñ¿
- ó ¬«¡µÑ .EXE Σá⌐½á éáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, á ¡Ñ ó «Γñѽ∞¡«¼
- .OVR Σá⌐½Ñ. ä½∩ »α¿ß«Ññ¿¡Ñ¡¿∩ .OVR Σá⌐½á ¬ ¬«¡µπ .EXE Σá⌐½á
- ¿ß»«½∞ºπ⌐ΓÑ ¬«¼á¡ñπ Copy DOS ß «»µ¿Ñ⌐ /b. ìá»α¿¼Ñα
-
- Copy/b MYPROG.EXE + MYPROG.OVR
-
- éδ ñ«½ª¡δ íδΓ∞ πóÑαÑ¡δ, τΓ« .EXE Σá⌐½ íδ½ «Γ¬«¼»¿½¿α«óá¡ íѺ
- «Γ½áñ«τ¡«⌐ ¿¡Σ«α¼áµ¿¿ Turbo Debugger. ä½∩ φΓ«ú« ó IDE ¡Ñ«íσ«ñ¿¼«,
- τΓ«íδ Debug/StandAlone Debugging í佫 πßΓá¡«ó½Ñ¡« ó Off; ß
- ¬«¼á¡ñ¡«⌐ óÑαß¿Ñ⌐ ¬«¼»¿½∩Γ«αá ¡Ñ ñ«½ª¡á íδΓ∞ π¬áºá¡á «»µ¿∩ /V.
- ä½∩ τΓÑ¡¿∩ «óÑα½ÑÑó ß ¬«¡µá .EXE Σá⌐½á á ¡Ñ ¿º «Γñѽ∞¡«ú« .OVR
- Σá⌐½á, »α«ßΓ« π¬áª¿ΓÑ ¿¼∩ .EXE Σá⌐½á ó ó맮óÑ OvrInit. àß½¿ éδ
- αáí«ΓáÑΓÑ »«ñ DOS 3.X, éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ßΓá¡ñáαΓ¡πε Σπ¡¬µ¿ε
- ParamStr ñ½∩ »«½πτÑ¡¿∩ ¿¼Ñ¡¿ .EXE Σá⌐½á. ìá»α¿¼Ñα:
-
- OvrInit(ParamStr(0));
-