home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS 1
/
BBS#1.iso
/
document
/
pas60pg.lzh
/
PG21.MY
< prev
next >
Wrap
Text File
|
1991-02-04
|
30KB
|
749 lines
âïÇéÇ 21.
äêÉàèÆêé¢ èÄîÅêïƒÆÄÉÇ.
ìѬ«Γ«αδÑ ßó«⌐ßΓóá ¬«¼»¿½∩Γ«αá Turbo Pascal π»αáó½∩εΓß∩ ß
»«¼«Θ∞ε ñ¿αÑ¬Γ¿ó. ä¿αÑ¬Γ¿óá ¬«¼»¿½∩µ¿¿ ∩ó½∩ÑΓß∩ ¬«¼¼Ñ¡Γáα¿Ñ¼ ß«
߻ѵ¿á½∞¡δ¼ ß¿¡Γá¬ß¿ß«¼. Turbo Pascal ñ«»π߬áÑΓ π¬áºá¡¿Ñ ñ¿αÑ¬Γ¿ó
¬«¼»¿½∩Γ«αá ó ½εí«¼ ¼ÑßΓÑ, úñÑ ñ«»πßΓ¿¼δ ¬«¼¼Ñ¡Γáα¿¿.
ä¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá ¡áτ¿¡áÑΓß∩ ß ß¿¼ó«½á $, ¬«Γ«αδ⌐ ∩ó½∩ÑΓß∩
»Ñαóδ¼ ß¿¼ó«½«¼ »«ß½Ñ «Γ¬αδóáεΘÑú« ¬«¼¼Ñ¡Γáα¿⌐ αáºñѽ¿Γѽ∩, á ºá
¡¿¼ ßαáºπ π¬áºδóáÑΓß∩ ¿¼∩ («ñ¡á ¿½¿ í«½∞ΦÑ íπ¬ó), «í«º¡áτáεΘ¿Ñ
«»αÑñѽѡ¡πε ñ¿αÑ¬Γ¿óπ. àßΓ∞ Γα¿ Γ¿»á ñ¿αÑ¬Γ¿ó:
- ä¿αÑ¬Γ¿óδ »ÑαѬ½ετÑ¡¿∩. ¥Γ¿ ñ¿αÑ¬Γ¿óδ ó¬½ετáεΓ «»αÑñѽѡ¡δÑ
ßó«⌐ßΓóá ¬«¼»¿½∩Γ«αá ¿½¿ ó䬽ετáεΓ φΓ¿ ßó«⌐ßΓóá ß »«¼«Θ∞ε + ¿½¿ -,
π¬áºá¡¡δσ ßαáºπ ªÑ »«ß½Ñ ¿¼Ñ¡¿ ñ¿αÑ¬Γ¿óδ.
- Åáαá¼ÑΓα¿τÑ߬¿Ñ ñ¿αÑ¬Γ¿óδ. ¥Γ¿ ñ¿αÑ¬Γ¿óδ ºáñáεΓ »áαá¼ÑΓαδ,
¬«Γ«αδÑ ó½¿∩εΓ ¡á ¬«¼»¿½∩µ¿ε, ¡á»α¿¼Ñα: ¿¼Ñ¡á Σá⌐½«ó ¿ αẼÑαδ
»á¼∩Γ¿.
- ôß½«ó¡δÑ ñ¿αÑ¬Γ¿óδ. ¥Γ¿ ñ¿αÑ¬Γ¿óδ π»αáó½∩εΓ πß½«ó¡«⌐
¬«¼»¿½∩µ¿Ñ⌐ τáßΓÑ⌐ ¿ßσ«ñ¡«ú« ΓѬßΓá ó ºáó¿ß¿¼«ßΓ¿ «Γ πß½«ó¡δσ
ß¿¼ó«½«ó, «»αÑñѽѡ¡δσ »«½∞º«óáΓѽѼ.
éßÑ ñ¿αÑ¬Γ¿óδ, ºá ¿ß¬½ετÑ¡¿Ñ¼ ñ¿αÑ¬Γ¿ó »ÑαѬ½ετÑ¡¿∩, ñ«½ª¡δ
¿¼ÑΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¿¡ »α«íѽ ¼Ñªñπ ¿¼Ñ¡Ñ¼ ñ¿αÑ¬Γ¿óδ ¿
»áαá¼ÑΓα«¼. ì¿ªÑ »α¿óÑñÑ¡« ¡Ñ߬«½∞¬« »α¿¼Ñα«ó ñ¿αÑ¬Γ¿ó ¬«¼»¿½∩Γ«αá:
{$B+}
{$R- é䬽ετÑ¡¿Ñ »α«óÑન ñ«»πßΓ¿¼«ú« ñ¿á»áº«¡á}
{$I TYPES.INC}
{$O EdFormat}
{$M 65520, 8192, 655360}
{$ DEFINE Debug}
{$ IFDEF Debug}
{$ ENDIF}
¡« »«¼ÑΘáΓ∞ ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá ¡Ñ»«ßαÑñßΓóÑ¡¡« ó
¿ßσ«ñ¡δ⌐ ¬«ñ. ¡« Γá¬ªÑ ¿º¼Ñ¡¿Γ∞, «»αÑñѽѡ¡δÑ »« π¼«½τá¡¿ε
ñ¿αÑ¬Γ¿óδ ¿ ñ½∩ ¬«¼»¿½∩Γ«αá ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ (TPC.EXE) ¿ ñ½∩
¬«¼»¿½∩Γ«αá IDE (TURBO.EXE). îÑ¡ε Options/Compiler
(«»µ¿∩/¬«¼»¿½∩Γ«α) ß«ñÑαª¿Γ óßÑ ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá; ½εíδÑ
¿º¼Ñ¡Ñ¡¿∩ ó πßΓá¡«ó¬áσ φΓ¿σ ñ¿αÑ¬Γ¿ó íπñπΓ ó½¿∩Γ∞ ¡á óßÑ
»«ß½ÑñπεΘ¿Ñ ¬«¼»¿½∩µ¿¿. è«úñá ¿ß»«½∞ºπÑΓß∩ ¬«¼»¿½∩Γ«α ¬«¼á¡ñ¡«⌐
ßΓ᫬¿, ¼«ª¡« ºáñáΓ∞ ñ¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá ó ¬«¼á¡ñ¡«⌐ ßΓ᫬Ñ
(¡á»α¿¼Ñα, TPC / $R+ MYPROG), ¿½¿ ¼«ª¡« »«¼ÑßΓ¿Γ∞ ñ¿αÑ¬Γ¿óδ ó Σá⌐½
¬«¡Σ¿úπαᵿ¿ (TPC.CFG - í«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ ß«ñÑনΓß∩ ó
ú½áóÑ 9 Éπ¬«ó«ñßΓóá »«½∞º«óáΓѽ∩). ä¿αÑ¬Γ¿óδ ¬«¼»¿½∩Γ«αá ó ¿ßσ«ñ¡«¼
¬«ñÑ óßÑúñá «Γ¼Ñ¡∩εΓ «»αÑñѽѡ¡δÑ »« π¼«½τá¡¿ε º¡áτÑ¡¿∩ ¿ ó
¬«¼»¿½∩Γ«αÑ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿, ¿ ó ¬«¼»¿½∩Γ«αÑ IDE.
ä¿αÑ¬Γ¿óδ »ÑαѬ½ετÑ¡¿∩.
ä¿αÑ¬Γ¿óδ »ÑαѬ½ετÑ¡¿∩ ∩ó½∩εΓß∩ ¿½¿ ½«¬á½∞¡δ¼¿, ¿½¿
ú½«íá½∞¡δ¼¿. ⽫íá½∞¡δÑ ñ¿αÑ¬Γ¿óδ ó½¿∩εΓ ¡á óßε ¬«¼»¿½∩µ¿ε, ó Γ«
óαѼ∩ ¬á¬ ½«¬á½∞¡δÑ ñ¿αÑ¬Γ¿óδ ó½¿∩εΓ Γ«½∞¬« ¡á τáßΓ∞ ¬«¼»¿½∩µ¿¿,
¬«Γ«αá∩ óδ»«½¡∩ÑΓß∩ «Γ φΓ«⌐ ñ¿αÑ¬Γ¿óδ ñ« ß½ÑñπεΘÑú« »«∩ó½Ñ¡¿∩ φΓ«⌐
ªÑ ñ¿αÑ¬Γ¿óδ.
⽫íá½∞¡δÑ ñ¿αÑ¬Γ¿óδ ñ«½ª¡δ »«∩ó½∩Γ∞ß∩ »ÑαÑñ ñѬ½áαáΓ¿ó¡«⌐
τáßΓ∞ε »α«úαá¼¼δ ¿½¿ ¼«ñπ½∩, ¬«Γ«αδ⌐ íπñÑΓ ¬«¼»¿½¿α«óáΓ∞ß∩, Γ.Ñ.
»ÑαÑñ »Ñαó묨 ¬½ετÑó묨 ß½«óἿ: uses, label, const, type,
procedure, function ¿½¿ begin. æ ñαπú«⌐ ßΓ«α«¡δ ½«¬á½∞¡δÑ ñ¿αÑ¬Γ¿óδ
¼«úπΓ »«∩ó¿Γ∞ß∩ ó ½εí«¼ ¼ÑßΓÑ »α«úαá¼¼δ ¿½¿ ¼«ñπ½∩.
ìÑ߬«½∞¬« ñ¿αÑ¬Γ¿ó »ÑαѬ½ετÑ¡¿∩ ¼«ª¡« úαπ»»¿α«óáΓ∞ ó «ñ¡«¼
¬«¼¼Ñ¡Γáα¿¿, αáºñѽ¿ó ¿σ ß »«¼«Θ∞ε ºá»∩Γδσ, ¡á»α¿¼Ñα:
{$B+,R-,S-}
é φΓ«¼ ß½πτáÑ ¼Ñªñπ ñ¿αÑ¬Γ¿óἿ ¡Ñ ñ«½ª¡« íδΓ∞ »α«íѽ«ó.
éδαáó¡¿óá¡¿Ñ ñá¡¡δσ.
æ¿¡Γá¬ß¿ß: {$A+} ¿½¿ {$A-}
Å« π¼«½τá¡¿ε: {$A+}
Æ¿» : ú½«íá½∞¡δ⌐.
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Word Align Data.
諼á¡ñ¡á∩ ßΓ᫬á : /$A
¥Γá ñ¿αÑ¬Γ¿óá »ÑαѬ½ετáÑΓ óδαáó¡¿óá¡¿Ñ »ÑαѼѡ¡δσ ¿
Γ¿»¿α«óá¡¡δσ ¬«¡ßΓá¡Γ ¡á úαá¡¿µπ íá⌐Γá ¿½¿ ¡á úαá¡¿µπ ß½«óá.
éδαáó¡¿óá¡¿Ñ ¡á úαá¡¿µπ ß½«óá ¡Ñ ¿¼ÑÑΓ φΣΣѬΓá ó µÑ¡Γαá½∞¡«¼
»α«µÑßß«αÑ 8088. Äñ¡á¬«, ñ½∩ óßÑσ »α«µÑßß«α«ó 80σ86 óδαáó¡¿óá¡¿Ñ ¡á
úαá¡¿µπ ß½«óá «º¡áτáÑΓ í«½ÑÑ íδßΓα«Ñ óδ»«½¡Ñ¡¿Ñ, Γ. ¬. ¬ φ½Ñ¼Ñ¡Γá¼
αẼÑα«¼ ó ß½«ó« ß τÑΓ¡δ¼¿ áñαÑßἿ ñ«ßΓπ» «ßπΘÑßΓó½∩ÑΓß∩ ºá «ñ¿¡
µ¿¬½ »á¼∩Γ¿ »« ßαáó¡Ñ¡¿ε ß ñóπ¼∩ µ¿¬½á¼¿ »á¼∩Γ¿ ñ½∩ ß½«ó ß
¡ÑτÑΓ¡δ¼¿ áñαÑßἿ.
é ß«ßΓ«∩¡¿¿ {$A+} óßÑ »ÑαѼѡ¡δÑ ¿ Γ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ
αẼÑα«¼ í«½∞ΦÑ «ñ¡«ú« íá⌐Γá óδαáó¡¿óáεΓß∩ ¡á úαá¡¿µπ ¼áΦ¿¡¡«ú«
ß½«óá (áñαÑßá ß τÑΓ¡δ¼¿ ¡«¼ÑαἿ). àß½¿ ΓαÑíπÑΓß∩, Γ« óßΓáó½∩εΓß∩
ñ«»«½¡¿Γѽ∞¡δÑ ¡Ñ¿ß»«½∞º«óá¡¡δÑ íá⌐Γδ ¼Ñªñπ »ÑαѼѡ¡δ¼¿, ñ½∩ Γ«ú«,
τΓ«íδ «íÑß»Ñτ¿Γ∞ óδαáó¡¿óá¡¿Ñ ¡á úαá¡¿µπ ß½«óá. ä¿αÑ¬Γ¿óá {$A+} ¡Ñ
ó½¿∩ÑΓ ¡á »ÑαѼѡ¡δÑ αẼÑα«¼ ó íá⌐Γ, Γá¬ªÑ «¡á ¡Ñ ó½¿∩ÑΓ ¡á »«½Ñ
ßΓαπ¬Γπα ºá»¿ß¿ ¿ φ½Ñ¼Ñ¡Γδ ¼áßß¿óá. Å«½Ñ ó ºá»¿ß¿ íπñÑΓ
óδαáó¡¿óáΓ∞ß∩ ¡á úαá¡¿µπ ß½«óá Γ«½∞¬«, Ñß½¿ «íΘ¿⌐ αẼÑα óßÑσ »«½Ñ⌐
»ÑαÑñ ¡¿¼ ∩ó½∩ÑΓß∩ τÑΓ¡δ¼. ǡὫú¿τ¡«, φ½Ñ¼Ñ¡Γ ¼áßß¿óá íπñÑΓ
óδαáó¡¿óáΓ∞ß∩ ¡á úαá¡¿µπ ß½«óá, Ñß½¿ αẼÑα φ½Ñ¼Ñ¡Γ«ó ¼áßß¿óá
∩ó½∩ÑΓß∩ τÑΓ¡δ¼.
é ß«ßΓ«∩¡¿¿ {$A-} óδαáó¡¿óá¡¿Ñ ¡Ñ »α«¿ºó«ñ¿Γß∩. ÅÑαѼѡ¡δÑ ¿
Γ¿»¿α«óá¡¡δÑ ¬«¡ßΓá¡Γδ »α«ßΓ« αẼÑΘáεΓß∩ »« ß½ÑñπεΘѼπ ñ«ßΓπ»¡«¼π
áñαÑßπ, ¡Ñºáó¿ß¿¼« «Γ ¿σ αẼÑαá. àß½¿ éδ »ÑαѬ«¼»¿½¿απÑΓÑ
»α«úαá¼¼π, ¿ß»«½∞ºπεΘπε Turbo Pascal Editor Toolbox, πíÑñ¿ΓÑß∞, τΓ«
óßÑ »α«úαá¼¼δ ó Toolbox ¬«¼»¿½¿απεΓß∩ ß {$A-}.
Åα¿¼Ñτá¡¿Ñ: ìѺáó¿ß¿¼« «Γ ñ¿αÑ¬Γ¿óδ $A ¬áªñá∩ ßѬµ¿∩
«íΩ∩ó½Ñ¡¿⌐ ú½«íá½∞¡δσ »ÑαѼѡ¡δσ ¿ ¬«¡ßΓá¡Γ óßÑúñá ¡áτ¿¡áÑΓß∩ ¡á
úαá¡¿µÑ ß½«óá. ǡὫú¿τ¡«, ¬«¼»¿½∩Γ«α óßÑúñá ßΓαѼ¿Γß∩ óδαáó¡¿óáΓ∞
π¬áºáΓѽ∞ ßΓѬá (SP) ¡á úαá¡¿µÑ ß½«óá, αẼÑΘá∩ ñ«»«½¡¿Γѽ∞¡δ⌐
¡Ñ¿ß»«½∞ºπѼδ⌐ íá⌐Γ ó ¬áñαÑ ßΓÑ¬á »α«µÑñπαδ, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«.
éδτ¿ß½Ñ¡¿Ñ íπ½Ñó߬¿σ óδαáªÑ¡¿⌐.
æ¿¡Γá¬ß¿ß : {$B+} ¿½¿ {$B-}
Å« π¼«½τá¡¿ε : {$B-}
Æ¿» : ½«¬á½∞¡δ⌐.
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Complete Boolean Eval
¥Γá «»µ¿∩ »ÑαѬ½ετáÑΓ ñóÑ αẽ¿τ¡δσ ¼«ñѽ¿ úÑ¡Ñαᵿ¿ ¬«ñá ñ½∩
íπ½Ñó߬¿σ «»ÑαáΓ«α«ó and ¿½¿ or.
é ß«ßΓ«∩¡¿¿ {$B+} ¬«¼»¿½∩Γ«α úÑ¡Ñα¿απÑΓ ¬«ñ ñ½∩ »«½¡«ú«
óδτ¿ß½Ñ¡¿∩ íπ½Ñó߬«ú« óδαáªÑ¡¿∩. ¥Γ« «º¡áτáÑΓ, τΓ« ¬áªñδ⌐ «»Ñαá¡ñ
íπ½Ñó߬«ú« óδαáªÑ¡¿∩, »«ßΓα«Ñ¡¡δ⌐ ¿º «»ÑαáΓ«α«ó and ¿½¿ or, íπñÑΓ
óδτ¿ß½∩Γ∞ß∩, ñáªÑ ¬«úñá αѺπ½∞ΓáΓ óßÑú« óδαáªÑ¡¿∩ πªÑ ¿ºóÑßΓÑ¡.
é ß«ßΓ«∩¡¿¿ {$B-} ¬«¼»¿½∩Γ«α úÑ¡Ñα¿απÑΓ ¬«ñ ñ½∩ ¬«α«Γ¬«ú«
óδτ¿ß½Ñ¡¿∩ íπ½Ñó߬«ú« óδαáªÑ¡¿∩, φΓ« «º¡áτáÑΓ, τΓ« óδτ¿ß½Ñ¡¿Ñ
»αѬαáΘáÑΓß∩ ¬á¬ Γ«½∞¬« αѺπ½∞ΓáΓ óßÑú« óδαáªÑ¡¿∩ ßΓá¡«ó¿Γß∩
«τÑó¿ñ¡δ¼.
ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ »« ñá¡¡«¼π ó«»α«ßπ ß«ñÑনΓß∩ ó
αáºñÑ½Ñ "ï«ú¿τÑ߬¿Ñ «»ÑαáΓ«αδ" ó ú½.6 "éδαáªÑ¡¿∩".
ÄΓ½áñ«τ¡á∩ ¿¡Σ«α¼áµ¿∩.
æ¿¡Γá¬ß¿ß : {$D+} ¿½¿ {$D-}
Å« π¼«½τá¡¿ε : {$D+}
Æ¿» : ú½«íá½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Debug information
¥Γá «»µ¿∩ αáºαÑΦáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ úÑ¡Ñαáµ¿ε «Γ½áñ«τ¡«⌐
¿¡Σ«α¼áµ¿¿. ¥Γá ¿¡Σ«α¼áµ¿∩ ß«ßΓ«¿Γ ¿º Γáí½¿µδ ß ¡«¼ÑαἿ ßΓ᫬ ñ½∩
¬áªñ«⌐ »α«µÑñπαδ, ¬«Γ«αá∩ «Γ«íαáªáÑΓ áñαÑßá «íΩÑ¬Γ¡«ú« ¬«ñá ó
¡«¼Ñαá ßΓ᫬ ¿ßσ«ñ¡«ú« ΓѬßΓá.
è«úñá «Γ½áñ«τ¡á∩ ¿¡Σ«α¼áµ¿∩ ñ½∩ ñá¡¡«⌐ »α«úαá¼¼δ ¿½¿ ¼«ñπ½∩
ó¬½ετÑ¡á, óßΓα«Ñ¡¡δ⌐ «Γ½áñτ¿¬ Turbo Pascal »αÑñ«ßΓáó½∩ÑΓ
󫺼«ª¡«ßΓ∞ »«Φáú«ó«ú« óδ»«½¡Ñ¡¿∩ ¿ πßΓá¡«ó¬¿ Γ«τѬ »αÑαδóá¡¿∩ ó
φΓ«¼ ¼«ñπ½Ñ. üѽÑÑ Γ«ú«, ¬«úñá ó »α«úαá¼¼Ñ ¿½¿ ó ¼«ñπ½Ñ,
«Γ¬«¼»¿½¿α«óá¡¡«¼ ß ñ¿αÑ¬Γ¿ó«⌐ {$D+} »«∩ó½∩ÑΓß∩ «Φ¿í¬á óδ»«½¡Ñ¡¿∩,
Turbo Pascal ¼«ªÑΓ áóΓ«¼áΓ¿τÑ߬¿ π¬áºáΓ∞ «»ÑαáΓ«α, ¬«Γ«αδ⌐ óδºóá½
«Φ¿í¬π.
ÅÑαѬ½ετáΓѽ¿ Debugging (Options/Debugger) ¿ Options/ Linker/
Map File Σ«α¼¿απεΓ ¿¡Σ«α¼áµ¿ε « ¡«¼Ñαáσ ßΓ᫬ ñ½∩ ñá¡¡«ú« ¼«ñπ½∩,
Γ«½∞¬« Ñß½¿ φëà ¼«ñπ½∞ ¬«¼»¿½¿απÑΓß∩ »α¿ ºáñá¡¡«⌐ ñ¿αÑ¬Γ¿óÑ {$D+}.
ä½∩ ¼«ñπ½Ñ⌐ «Γ½áñ«τ¡á∩ ¿¡Σ«α¼áµ¿∩ ºá»¿ßδóáÑΓß∩ ó Σá⌐½ .TPU
ó¼ÑßΓÑ ß «íΩÑ¬Γ¡δ¼ ¬«ñ«¼ ¼«ñπ½∩. ÄΓ½áñ«τ¡á∩ ¿¡Σ«α¼áµ¿∩ πóѽ¿τ¿óáÑΓ
αẼÑα .TPU Σá⌐½«ó ¿ ºá¡¿¼áÑΓ ñ«»«½¡¿Γѽ∞¡«Ñ ¼ÑßΓ« »α¿ ¬«¼»¿½∩µ¿¿
»α«úαá¼¼, ¿ß»«½∞ºπεΘ¿σ φëà ¼«ñπ½∞, ¡« «¡á ¡Ñ ó½¿∩ÑΓ ¡á αẼÑα ¿
߬«α«ßΓ∞ óδ»«½¡¿¼«⌐ »α«úαá¼¼δ.
ÅÑαѬ½ετáΓѽ∞ «Γ½áñ«τ¡«⌐ ¿¡Σ«α¼áµ¿¿ «íδτ¡« ¿ß»«½∞ºπÑΓß∩ ó¼ÑßΓÑ
ß »ÑαѬ½ετáΓѽѼ $L, ¬«Γ«αδ⌐ ó¬½ετáÑΓ ¿½¿ ó䬽ετáÑΓ úÑ¡Ñαᵿε
¿¡Σ«α¼áµ¿¿ « ½«¬á½∞¡δσ ß¿¼ó«½áσ ñ½∩ «Γ½áñ¬¿.
Åα¿¼Ñτá¡¿Ñ: àß½¿ ¡πª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ «Γ½áñ¬¿ »α«úαá¼¼δ
Æπαí« Debugger, Γ« πßΓá¡«ó¿ΓÑ Compile/destination (¡áº¡áτÑ¡¿Ñ) ¡á
Disk (ñ¿ß¬) ¿ ó¬½ετ¿ΓÑ Standálone ó Options/Debugger/Debugging.
¥¼π½∩µ¿∩.
æ¿¡Γá¬ß¿ß : {$E+} ¿½¿ {$E-}
Å« π¼«½τá¡¿ε : {$E+}
Æ¿» : ú½«íá½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Emulation
¥Γá «»µ¿∩ αáºαÑΦáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ αÑñá¬Γ¿α«óá¡¿Ñ ßó∩ºÑ⌐ ß
í¿í½¿«ΓѬ«⌐ óαѼѡ¿ óδ»«½¡Ñ¡¿∩, ¬«Γ«αá∩ íπñÑΓ φ¼π½¿α«óáΓ∞ τ¿ß½«ó«⌐
ß«»α«µÑßß«α 8087, Ñß½¿ «¡ «ΓßπΓßΓóπÑΓ.
Åα¿ ¬«¼»¿½∩µ¿¿ »α«úαá¼¼δ ó ß«ßΓ«∩¡¿¿ {$N+,E+} Turbo Pascal
αÑñá¬Γ¿απÑΓ ßó∩º¿ ß »«½¡δ¼ φ¼π½∩Γ«α«¼ 8087. ÉѺπ½∞Γ¿απεΘ¿⌐ .EXE
Σá⌐½ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ¡á ½εí«⌐ ¼áΦ¿¡Ñ, ¡Ñºáó¿ß¿¼« «Γ ¡á½¿τ¿∩
ß«»α«µÑßß«αá 8087. àß½¿ «¡ ÑßΓ∞, Γ« «¡ ¿ß»«½∞ºπÑΓß∩; ó »α«Γ¿ó¡«¼
ß½πτáÑ «¡ φ¼π½¿απÑΓß∩ í¿í½¿«ΓѬ«⌐ óαѼѡ¿ óδ»«½¡Ñ¡¿∩.
é ß«ßΓ«∩¡¿¿ {$N+,E-} Turbo Pascal αÑñá¬Γ¿απÑΓ ßó∩º¿ ß
º¡áτ¿Γѽ∞¡« ¼Ñ¡∞ΦÑ⌐ í¿í½¿«ΓѬ«⌐ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐, ¬«Γ«αá∩ ¼«ªÑΓ
¿ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬«, Ñß½¿ ß«»α«µÑßß«α 8087 ÑßΓ∞ ó ¡á½¿τ¿¿.
ÅÑαѬ½ετáΓѽ∞ φ¼π½∩µ¿¿ 8087 ¡Ñ «¬áºδóáÑΓ ¡¿¬á¬«ú« ñÑ⌐ßΓó¿∩,
Ñß½¿ ¿ß»«½∞ºπÑΓß∩ ó ¼«ñπ½Ñ; «¡ »α¿¼Ñ¡∩ÑΓß∩ Γ«½∞¬« »α¿ ¬«¼»¿½∩µ¿¿
»α«úαá¼¼δ. ü«½ÑÑ Γ«ú«, Ñß½¿ »α«úαá¼¼á ¬«¼»¿½¿απÑΓß∩ ó ß«ßΓ«∩¡¿¿ {$N
-} ¿ Ñß½¿ óßÑ ¼«ñπ½¿, ¿ß»«½∞ºπѼδÑ »α«úαá¼¼«⌐, í뫨 «Γ¬«¼»¿½¿α«óá¡δ
ß {$N-}, Γ« í¿í½¿«ΓѬá óαѼѡ¿ óδ»«½¡Ñ¡¿∩ 8087 ¡Ñ ΓαÑíπÑΓß∩ ¿
»ÑαѬ½ετáΓѽ∞ φ¼π½∩µ¿¿ 8087 ¿ú¡«α¿απÑΓß∩.
éδí«α ¼«ñѽ¿ ñá½∞¡Ñú« ó맮óá.
æ¿¡Γá¬ß¿ß : {$F+} ¿½¿ {$F-}
Å« π¼«½τá¡¿ε : {$F-}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Force Far Calls
¥Γá «»µ¿∩ π»αáó½∩ÑΓ óδí«α«¼ ¼«ñѽ¿ ó맮óá, ¿ß»«½∞ºπѼ«⌐ ñ½∩
»«ß½Ññ«óáΓѽ∞¡« «Γ¬«¼»¿½¿α«óá¡¡δσ »α«µÑñπα ¿ Σπ¡¬µ¿⌐. Åα«µÑñπαδ ¿
Σπ¡¬µ¿¿, «Γ¬«¼»¿½¿α«óá¡¡δÑ ó ß«ßΓ«∩¡¿¿ {$F+}, óßÑúñá ¿ß»«½∞ºπεΓ
¼«ñѽ∞ ó맮óá FAR (ñá½∞¡¿⌐). é ß«ßΓ«∩¡¿¿ {$F-} Turbo Pascal
áóΓ«¼áΓ¿τÑ߬¿ óδí¿αáÑΓ ß««ΓóÑΓßΓóπεΘπε ¼«ñѽ∞: Far (ñá½∞¡¿⌐), Ñß½¿
»α«µÑñπαá ¿½¿ Σπ¡¬µ¿∩ «íΩ∩ó½∩εΓß∩ ó τáßΓ¿ interface ¼«ñπ½∩; ó
»α«Γ¿ó¡«¼ ß½πτáÑ NEAR (í½¿ª¡¿⌐).
NEAR ¿ FAR ¼«ñѽ¿ ó맮ó«ó «»¿ßá¡δ »«ñα«í¡« ó ú½áóÑ 18 "é«»α«ßδ
π»αáó½Ñ¡¿∩".
Åα¿¼Ñτá¡¿Ñ: ä½∩ »α«úαá¼¼, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ «óÑα½Ñ¿,
»αÑñ»«½áúáÑΓß∩, τΓ« ó ¡áτá½Ñ ¬áªñ«⌐ »α«úαá¼¼δ ¿ ¬áªñ«ú« ¼«ñπ½∩
»«¼ÑΘáÑΓß∩ ñ¿αÑ¬Γ¿óá {$F+} ñ½∩ Γ«ú«, τΓ«íδ óδ»«½¡∩½«ß∞ ΓαÑí«óá¡¿Ñ
FAR ó맮óá. ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ »« ñá¡¡«¼π ó«»α«ßπ »α¿óÑñÑ¡á
ó ú½áóÑ 13 "ÄóÑα½Ñ¿". ä½∩ »α«úαá¼¼, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ »α«µÑñπα¡δÑ
»ÑαѼѡ¡δÑ, óßÑ Γá¬¿Ñ »α«µÑñπαδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ ¼«ñѽ∞ ó맮óá
FAR. ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ »α¿óÑñÑ¡á ó αáºñÑ½Ñ "Åα«µÑñπα¡δÑ
»ÑαѼѡ¡δÑ" ú½áóδ 8.
âÑ¡Ñαᵿ∩ ¬«ñá 80286.
æ¿¡Γá¬ß¿ß : {$G+} ¿½¿ {$G-}
Å« π¼«½τá¡¿ε : {$G-}
Æ¿» : ½«¬á¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/286 instructions
ä¿αÑ¬Γ¿óá $G ó¬½ετáÑΓ ¿½¿ ó䬽ετáÑΓ úÑ¡Ñαáµ¿ε ¬«ñá 80286. é
ß«ßΓ«∩¡¿¿ {$G-} úÑ¡Ñα¿απεΓß∩ Γ«½∞¬« ¿¡ßΓαπ¬µ¿¿ 80286 ¿ »α«úαá¼¼á,
«Γ¬«¼»¿½¿α«óá¡¡á∩ ó φΓ«¼ ß«ßΓ«∩¡¿¿ ¼«ªÑΓ αáí«ΓáΓ∞ ¡á ½εí«¼
»α«µÑßß«αÑ 80σ86. é ß«ßΓ«∩¡¿¿ {$G+} ¬«¼»¿½∩Γ«α ¿ß»«½∞ºπÑΓ
ñ«»«½¡¿Γѽ∞¡δÑ ¿¡ßΓαπ¬µ¿¿ 80286 ñ½∩ π½πτΦÑ¡¿∩ úÑ¡Ñαᵿ¿ ¬«ñá, ¡«
»α«úαá¼¼δ, «Γ¬«¼»¿½¿α«óá¡¡δÑ ó φΓ«¼ ß«ßΓ«∩¡¿¿, ¡Ñ ¼«úπΓ αáí«ΓáΓ∞ ¡á
»α«µÑßß«αáσ 8088 ¿ 8086. ä«»«½¡¿Γѽ∞¡δÑ ¿¡ßΓαπ¬µ¿¿, ¿ß»«½∞ºπѼδÑ ó
ß«ßΓ«∩¡¿¿ {$G+} ó¬½ετáεΓ ENTER, LEAVE, PUSH, IMUL, SHL, SHR.
Åα«óÑα¬á óó«ñá/óδó«ñá.
æ¿¡Γá¬ß¿ß : {$I+} ¿½¿ {$I-}
Å« π¼«½τá¡¿ε : {$I+}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/I/O Checking
ÅÑαѬ½ετáΓѽ∞ »α«óÑન óó«ñá/óδó«ñá ºáñáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ
áóΓ«¼áΓ¿τÑ߬πε úÑ¡Ñαáµ¿ε ¬«ñá, ¬«Γ«αδ⌐ »α«óÑα∩ÑΓ αѺπ½∞ΓáΓ ó맮óá
»α«µÑñπα óó«ñá/óδó«ñá. Åα«µÑñπαδ óó«ñá/óδó«ñá «»¿ßδóáεΓß∩ ó ú½áóÑ
19 "éó«ñ ¿ óδó«ñ". àß½¿ »α«µÑñπαá óó«ñá/óδó«ñá ó«ºóαáΘáÑΓ ¡Ñ¡π½Ñó«⌐
αѺπ½∞ΓáΓ óó«ñá/óδó«ñá, ¬«úñá φëà »ÑαѬ½ετáΓѽ∞ ó¬½ετÑ¡, Γ«
»α«úαá¼¼á ºáóÑαΦáÑΓß∩ ¿ ¡á ñ¿ß»½Ñ⌐ óδó«ñ¿Γß∩ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ
óδ»«½¡Ñ¡¿∩. è«úñá φëà »ÑαѬ½ετáΓѽ∞ ó䬽ετÑ¡, ¡πª¡« »α«óÑα∩Γ∞
«Φ¿í¬¿ óó«ñá/óδó«ñá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ IOResult.
ê¡Σ«α¼áµ¿∩ « ½«¬á½∞¡δσ ß¿¼ó«½áσ.
æ¿¡Γá¬ß¿ß : {$L+} ¿½¿ {$L-}
Å« π¼«½τá¡¿ε : {$L+}
Æ¿» : ú½«íá½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Local Symbols.
ÅÑαѬ½ετáΓѽ∞ ½«¬á½∞¡δσ ß¿¼ó«½«ó ºáñáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ úÑ¡Ñαᵿε
¿¡Σ«α¼áµ¿¿ « ½«¬á½∞¡δσ ß¿¼ó«½áσ. ê¡Σ«α¼áµ¿∩ « ½«¬á½∞¡δσ ß¿¼ó«½áσ
ß«ßΓ«¿Γ ¿º ¿¼Ñ¡ ¿ Γ¿»«ó óßÑσ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ ¿ ¬«¡ßΓá¡Γ ó
¼«ñπ½Ñ, Γ.Ñ. ¿º ß¿¼ó«½«ó, αáß»«½«ªÑ¡¡δσ ó τáßΓ¿ αÑ὿ºáµ¿¿ ¼«ñπ½∩ ¿
ß¿¼ó«½«ó, αáß»«½«ªÑ¡¡δσ ó¡πΓα¿ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ¼«ñπ½∩.
è«úñá φëà »ÑαѬ½ετáΓѽ∞ ó¬½ετÑ¡ ñ½∩ ñá¡¡«⌐ »α«úαá¼¼δ ¿½¿
¼«ñπ½∩, ¿¡ΓÑúα¿α«óá¡¡δ⌐ «Γ½áñτ¿¬ Turbo Pascal »«ºó«½∩ÑΓ
»α«ß¼áΓα¿óáΓ∞ ¿ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ ¼«ñπ½∩. ü«½ÑÑ
Γ«ú«, ó맮óδ »α«µÑñπα ¿ Σπ¡¬µ¿⌐ ñá¡¡«ú« ¼«ñπ½∩ ¼«úπΓ íδΓ∞
»α«ß¼«ΓαÑ¡δ τÑαѺ «¬¡« Window/Call Stack.
ÉÑ὿ºáµ¿∩ ¼ÑΓ«ñ«ó «íΩÑ¬Γ«ó, ¡á»¿ßá¡¡δσ ¡á ÇßßѼí½ÑαÑ, ¼«úπΓ
íδΓ∞ ó¬½ετÑ¡δ ó »α«úαá¼¼π ¡á Turbo Pascal, ¿ß»«½∞ºπ∩ ñ¿αÑ¬Γ¿óπ
¬«¼»¿½∩Γ«αá $L ¿ ¬½ετÑó«Ñ ß½«ó« external.
ÅÑαѬ½ετáΓѽ¿ Map File (Options/Linker) ¿ Debugging (Options/
Debugger) Σ«α¼¿απεΓ ¿¡Σ«α¼áµ¿ε « ½«¬á½∞¡δσ ß¿¼ó«½áσ ñ½∩ ñá¡¡«ú«
¼«ñπ½∩, Γ«½∞¬« Ñß½¿ φëà ¼«ñπ½∞ íδ½ «Γ¬«¼»¿½¿α«óá¡ ó ß«ßΓ«∩¡¿¿
{$L+}.
ä½∩ ¼«ñπ½Ñ⌐ ¿¡Σ«α¼áµ¿∩ « ½«¬á½∞¡δσ ß¿¼ó«½áσ ºá»¿ßδóáÑΓß∩ ó
.TPU Σá⌐½ ó¼ÑßΓÑ ß «íΩÑ¬Γ¡δ¼ ¬«ñ«¼ ¼«ñπ½∩. ê¡Σ«α¼áµ¿∩ « ½«¬á½∞¡δσ
ß¿¼ó«½áσ πóѽ¿τ¿óáÑΓ αẼÑα .TPU Σá⌐½«ó ¿ ºá¡¿¼áÑΓ ñ«»«½¡¿Γѽ∞¡πε
»á¼∩Γ∞ »α¿ ¬«¼»¿½∩µ¿¿ »α«úαá¼¼, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ φëà ¼«ñπ½∞, ¡«
φΓ« ¡Ñ ó½¿∩ÑΓ ¡á αẼÑα ¿ ߬«α«ßΓ∞ óδ»«½¡¿¼«⌐ »α«úαá¼¼δ.
ÅÑαѬ½ετáΓѽ∞ ¿¡Σ«α¼áµ¿¿ « ½«¬á½∞¡δσ ß¿¼ó«½áσ «íδτ¡«
¿ß»«½∞ºπÑΓß∩ ó¼ÑßΓÑ ß »ÑαѬ½ετáΓѽѼ «Γ½áñ«τ¡«⌐ ¿¡Σ«α¼áµ¿¿ $D,
¬«Γ«αδ⌐ ó¬½ετáÑΓ ¿½¿ ó䬽ετáÑΓ úÑ¡Ñαᵿε Γáí½¿µδ ¡«¼Ñα«ó ßΓ᫬ ñ½∩
«Γ½áñ¬¿. çá¼ÑΓ¿¼, τΓ« ñ¿αÑ¬Γ¿óá $L ¿ú¡«α¿απÑΓß∩, Ñß½¿ »ÑαѬ½ετáΓѽ∞
«Γ½áñ«τ¡«⌐ ¿¡Σ«α¼áµ¿¿ ó䬽ετÑ¡ {$D-}.
ù¿ß½«óá∩ «íαáí«Γ¬á.
æ¿¡Γá¬ß¿ß : {$N+} ¿½¿ {$N-}
Å« π¼«½τá¡¿ε : {$N-}
Æ¿» : ú½«íá½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/8087|80287
ÅÑαѬ½ετáΓѽ∞ τ¿ß½«ó«⌐ «íαáí«Γ¬¿ «»αÑñѽ∩ÑΓ «ñ¡π ¿º ñóπσ
αẽ¿τ¡δσ ¼«ñѽÑ⌐ úÑ¡Ñαᵿ¿ ¬«ñá ß »½áóáεΘÑ⌐ Γ«τ¬«⌐, »«ññÑনóáѼδσ
Turbo Pascal. é ß«ßΓ«∩¡¿¿ {$N-} ¬«ñ ñ½∩ óδ»«½¡Ñ¡¿∩ óßÑσ óδτ¿ß½Ñ¡¿⌐
óÑΘÑßΓóÑ¡¡«ú« Γ¿»á úÑ¡Ñα¿απÑΓß∩ ß »«¼«Θ∞ε ó맮óá »α«úαá¼¼
í¿í½¿«ΓѬ¿ óαѼѡ¿ óδ»«½¡Ñ¡¿∩. é ß«ßΓ«∩¡¿¿ {$N+} ¬«ñ ñ½∩ óδ»«½¡Ñ¡¿∩
óßÑσ óδτ¿ß½Ñ¡¿⌐ óÑΘÑßΓóÑ¡¡«ú« Γ¿»á úÑ¡Ñα¿απÑΓß∩ ß »«¼«Θ∞ε
¿ß»«½∞º«óá¡¿∩ τ¿ß½«ó«ú« ß«»α«µÑßß«αá 8087.
çá¼ÑΓ¿¼, τΓ« ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñ½∩ φ¼π½∩µ¿¿ 8087 ñ¿αÑ¬Γ¿óπ {$
E+}. ¥Γ« ñáßΓ ñ«ßΓπ» ¬ IEEE Γ¿»á¼ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐ íѺ
¡Ñ«íσ«ñ¿¼«ßΓ¿ ¿¡ßΓá½½∩µ¿¿ Γ¿»á 8087.
âÑ¡Ñαᵿ∩ «óÑα½Ñ⌐¡«ú« ¬«ñá.
æ¿¡Γá¬ß¿ß : {$O+} ¿½¿ {$O-}
Å« π¼«½τá¡¿ε : {$O-}
Æ¿» : ú½«íá½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Overlays Allowed
ä¿αÑ¬Γ¿óá $O ºáñáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ úÑ¡Ñαáµ¿ε «óÑα½Ñ⌐¡«ú« ¬«ñá.
Turbo Pascal »«ºó«½∩ÑΓ ßñѽáΓ∞ ¼«ñπ½∞ «óÑα½Ñ⌐¡δ¼, Γ«½∞¬« Ñß½¿ «¡
íδ½ «Γ¬«¼»¿½¿α«óá¡ ß ñ¿αÑ¬Γ¿ó«⌐ {$O+}. é φΓ«¼ ß½πτáÑ úÑ¡ÑαáΓ«α ¬«ñá
»α¿¡¿¼áÑΓ ß»Ñµ¿á½∞¡δÑ ¼Ñαδ »αÑñ«ßë᫪¡«ßΓ¿ »α¿ »ÑαÑñáτÑ ßΓ᫬¿ ¿
πßΓá¡áó½¿óáÑΓ »«ßΓ«∩¡¡δÑ »áαá¼ÑΓαδ »α¿ »ÑαÑñáτÑ ¿º «ñ¡«⌐ «óÑα½Ñ⌐¡«⌐
»α«µÑñπαδ ¿½¿ Σπ¡¬µ¿¿ ó ñαπúπε.
êß»«½∞º«óá¡¿Ñ ñ¿αÑ¬Γ¿óδ {$O+} ó ¼«ñπ½Ñ ¡Ñ ºáßΓáó½∩ÑΓ
ñѽáΓ∞ φëà ¼«ñπ½∞ «óÑα½Ñ⌐¡δ¼. ¥Γá ñ¿αÑ¬Γ¿óá Γ«½∞¬« ¿¡ßΓαπ¬Γ¿απÑΓ
Turbo Pascal úáαá¡Γ¿α«óáΓ∞, τΓ« φëà ¼«ñπ½∞ ¼«ªÑΓ íδΓ∞ «óÑα½Ñ⌐¡δ¼,
Ñß½¿ φΓ« »«ΓαÑíπÑΓß∩. àß½¿ αáºαáíáΓδóáεΓß∩ ¼«ñπ½¿, ¬«Γ«αδÑ
»½á¡¿απÑΓß∩ ¿ß»«½∞º«óáΓ∞ ó «óÑα½Ñ⌐¡δσ ¿ ¡Ñ«óÑα½Ñ⌐¡δσ »α¿¬½áñ¡δσ
»α«úαá¼¼áσ, Γ«úñá ¿σ ¬«¼»¿½∩µ¿∩ ß «»µ¿Ñ⌐ {$O+} «íÑß»Ñτ¿óáÑΓ φΓπ
󫺼«ª¡«ßΓ∞ »α¿ ¡á½¿τ¿¿ Γ«½∞¬« «ñ¡«⌐ óÑαß¿¿ ¼«ñπ½∩.
Åα¿¼Ñτá¡¿Ñ: ä¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá {$O+} »«τΓ¿ óßÑúñá
¿ß»«½∞ºπÑΓß∩ ß ñ¿αÑ¬Γ¿ó«⌐ {$F+} ñ½∩ Γ«ú«, τΓ«íδ πñ«ó½ÑΓó«α¿Γ∞
ΓαÑí«óá¡¿Ñ ¼«¡¿Γ«αá «óÑα½ÑÑó «í ¿ß»«½∞º«óá¡¿¿ ñá½∞¡Ñ⌐ ¼«ñѽ¿ ó맮óá
»α«µÑñπα ¿½¿ Σπ¡¬µ¿⌐.
ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ « úÑ¡Ñαᵿ¿ «óÑα½Ñ⌐¡«ú« ¬«ñá
»α¿óÑñÑ¡á ó ú½áóÑ 13 "ÄóÑα½Ñ¿".
Åα«óÑα¬á ñ¿á»áº«¡á.
æ¿¡Γá¬ß¿ß : {$R+} ¿½¿ {$R-}
Å« π¼«½τá¡¿ε : {$R-}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Range checking
ÅÑαѬ½ετáΓѽ∞ »α«óÑન ñ¿á»áº«¡á ºáñáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ ¬«ñ
»α«óÑન ñ¿á»áº«¡á. é ß«ßΓ«∩¡¿¿ {$R+} ó« óßÑσ óδαáªÑ¡¿∩σ
»α«óÑα∩ÑΓß∩, ¡áσ«ñ∩Γß∩ ½¿ ¿¡ñѬßδ ¼áßß¿ó«ó ¿ ßΓ᫬ ó ºáñá¡¡δσ
úαá¡¿µáσ, á Γá¬ªÑ »α«óÑα∩ÑΓß∩ »α¿¡áñ½Ñª¡«ßΓ∞ ñ«»πßΓ¿¼«¼π ñ¿á»áº«¡π
óßÑσ »α¿ßóá¿óáѼδσ ߬á½∩α¡δσ ¿ »«ññ¿á»áº«¡¡δσ »ÑαѼѡ¡δσ. àß½¿ φΓá
»α«óÑα¬á ñá½á «Γα¿µáΓѽ∞¡δÑ αѺπ½∞ΓáΓδ, Γ« »α«úαá¼¼á ºáóÑαΦáÑΓß∩ ¿
¡á ñ¿ß»½Ñ⌐ óδó«ñ¿Γß∩ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ óδ»«½¡Ñ¡¿∩. Åα«óÑα¬á
ñ¿á»áº«¡á ºá¼Ññ½∩ÑΓ óδ»«½¡Ñ¡¿Ñ »α«úαá¼¼δ ¿ πóѽ¿τ¿óáÑΓ ÑÑ αẼÑα.
êß»«½∞ºπ⌐ΓÑ φΓπ «»µ¿ε »α¿ «Γ½áñ¬Ñ, ¬«úñá ªÑ ó »α«úαá¼¼Ñ íπñπΓ
«ΓßπΓßΓó«óáΓ∞ «Φ¿í¬¿, φΓπ «»µ¿ε ¡πª¡« ó䬽ετ¿Γ∞.
Åα«óÑα¬á »ÑαÑ»«½¡Ñ¡¿∩ ßΓѬá.
æ¿¡Γá¬ß¿ß : {$S+} ¿½¿ {$S-}
Å« π¼«½τá¡¿ε : {$S+}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Stack checking
¥Γ«Γ »ÑαѬ½ετáΓѽ∞ ºáñáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ úÑ¡Ñαáµ¿ε »α«óÑન
»ÑαÑ»«½¡Ñ¡¿∩ ßΓѬá. é ß«ßΓ«∩¡¿¿ {$S+} ¬«¼»¿½∩Γ«α úÑ¡Ñα¿απÑΓ ¬«ñ ó
¡áτá½Ñ ¬áªñ«⌐ »α«µÑñπαδ ¿ Σπ¡¬µ¿¿, ¬«Γ«αδ⌐ »α«óÑα∩ÑΓ ¿¼ÑÑΓß∩ ½¿
ñ«ßΓáΓ«τ¡« ¼ÑßΓá ó ßΓÑ¬Ñ ñ½∩ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ ¿ ñαπú«⌐
óαѼѡ¡«⌐ »á¼∩Γ¿. è«úñá ¼ÑßΓá ó ßΓÑ¬Ñ ¡Ññ«ßΓáΓ«τ¡«, ó맮ó »α«µÑñπαδ
¿½¿ Σπ¡¬µ¿¿, «Γ¬«¼»¿½¿α«óá¡¡«⌐ ß «»µ¿Ñ⌐ {$S+}, óδºδóáÑΓ ºáóÑαΦÑ¡¿Ñ
»α«úαá¼¼δ ¿ ¡á ñ¿ß»½Ñ⌐ óδñáÑΓß∩ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ. é ß«ßΓ«∩¡¿¿ {$
S-} Γᬫ⌐ ó맮ó ¡á¿í«½ÑÑ óÑα«∩Γ¡« »α¿óÑñÑΓ ¬ áóáα¿⌐¡«¼π «Γ¬áºπ
ß¿ßΓѼδ.
Åα«óÑα¬á »ÑαѼѡ¡«⌐ ßΓ᫬¿.
æ¿¡Γá¬ß¿ß : {$V+} ¿½¿ {$V-}
Å« π¼«½τá¡¿ε : {$V+}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Strict Var-String
¥Γ«Γ »ÑαѬ½ετáΓѽ∞ π»αáó½∩ÑΓ »α«óÑᬫ⌐ Γ¿»á ñ½∩ ßΓ᫬,
»ÑαÑñáóáѼδσ ¬á¬ »ÑαѼѡ¡δÑ »áαá¼ÑΓαδ. é ß«ßΓ«∩¡¿¿ {$V+}
óδ»«½¡∩ÑΓß∩ ßΓα«úá∩ »α«óÑα¬á Γ¿»«ó, »α¿ ¬«Γ«α«⌐ ΓαÑíπÑΓß∩, τΓ«íδ
Σ«α¼á½∞¡δÑ ¿ Σá¬Γ¿τÑ߬¿Ñ »áαá¼ÑΓαδ ¿¼Ñ½¿ «ñ¿¡á¬«óδ⌐ ßΓ᫬«óδ⌐ Γ¿».
é ß«ßΓ«∩¡¿¿ {$V-} ó ¬áτÑßΓóÑ Σá¬Γ¿τÑ߬«ú« »áαá¼ÑΓαá ¼«ªÑΓ íδΓ∞
½εíá∩ »ÑαѼѡ¡á∩ ßΓ᫬«ó«ú« Γ¿»á, ñáªÑ Ñß½¿ «íΩ∩ó½Ñ¡¡á∩
¼á¬ß¿¼á½∞¡á∩ ñ½¿¡á ¡Ñ ß«ó»áñáÑΓ ß ñ½¿¡«⌐ Σ«α¼á½∞¡«ú« »áαá¼ÑΓαá.
ÉáßΦ¿αÑ¡¡δ⌐ ß¿¡Γá¬ß¿ß.
æ¿¡Γá¬ß¿ß : {$X+} ¿½¿ {$X-}
Å« π¼«½τá¡¿ε : {$X+}
Æ¿» : ú½«íá½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Compiler/Extended Syntax
ä¿αÑ¬Γ¿óá ¬«¼»¿½∩Γ«αá $X ó¬½ετáÑΓ ¿ ó䬽ετáÑΓ αáßΦ¿αÑ¡¡δ⌐
ß¿¡Γá¬ß¿ß Turbo Pascal. é αѪ¿¼Ñ {$X+} ó맮ó Σπ¡¬µ¿¿ ¼«ªÑΓ
¿ß»«½∞º«óáΓ∞ß∩ ¬á¬ «»ÑαáΓ«α; Γ.Ñ. αѺπ½∞ΓáΓ ó맮óá Σπ¡¬µ¿¿ ¼«ªÑΓ
íδΓ∞ «Γíα«ΦÑ¡. é «íΘѼ ß½πτáÑ óδτ¿ß½Ñ¡¿∩, »α«¿ºó«ñ¿¼δÑ Σπ¡¬µ¿Ñ⌐
»αÑñßΓáó½Ñ¡δ τÑαѺ ÑÑ αѺπ½∞ΓáΓ. Æá¬, τΓ« «Γíαáßδóá¡¿Ñ αѺπ½∞ΓáΓá
¿¼ÑÑΓ ¼á½« ß¼δß½á. Äñ¡á¬«, ó ¡Ñ¬«Γ«αδσ ß½πτá∩σ Σπ¡¬µ¿∩ ¼«ªÑΓ
óδ»«½¡∩Γ∞ «»Ñαᵿ¿, «ß¡«óá¡¡δÑ ¡á ÑÑ »áαá¼ÑΓαáσ, ¿ ó ¡Ñ¬«Γ«αδσ
ß½πτá∩σ ¼«ªÑΓ ¡Ñ ß«ºñáóáΓ∞ «ß¼δ߽ѡ¡«ú« αѺπ½∞ΓáΓá - ó φΓ¿σ ß½πτá∩σ
{$X+} »«ºó«½∩ÑΓ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ Σπ¡¬µ¿ε ¬á¬ »α«µÑñπαπ.
Åα¿¼Ñτá¡¿Ñ: ä¿αÑ¬Γ¿óá {$X+} ¡Ñ»α¿¼Ñ¡¿¼á ¬ óßΓα«Ñ¡¡δ¼ Σπ¡¬µ¿∩¼
(Γ.Ñ. Σπ¡¬µ¿∩¼, «»αÑñѽѡ¡δ¼ ó ¼«ñπ½Ñ System).
é ß«ßΓ«∩¡¿¿ »« π¼«½τá¡¿ε {$X-} - φΓ« αáßΦ¿αÑ¡¿Ñ ºá»αÑΘÑ¡« ¿
»«»δΓ¬á ¿ß»«½∞º«óáΓ∞ Ñú« »α¿óÑñÑΓ ¬ «Φ¿í¬Ñ.
Åáαá¼ÑΓα¿τÑ߬¿Ñ ñ¿αÑ¬Γ¿óδ.
鬽ετÑ¡¡δ⌐ Σá⌐½.
æ¿¡Γá¬ß¿ß : {$I ¿¼∩ Σá⌐½á}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Direct«ries/Include Directories
ä¿αÑ¬Γ¿óá $I ß««íΘáÑΓ ¬«¼»¿½∩Γ«απ « ó¬½ετÑ¡¿¿ ¡áºóá¡¡«ú« Σá⌐½á
ó ¬«¼»¿½∩µ¿ε. öá¬Γ¿τÑ߬¿ Σá⌐½ óßΓáó½∩ÑΓß∩ ó ¬«¼»¿½¿απѼδ⌐ ΓѬßΓ
ßαáºπ »«ß½Ñ ñ¿αÑ¬Γ¿óδ {$I ¿¼∩ Σá⌐½á}. Å« π¼«½τá¡¿ε ñ½∩ ¿¼Ñ¡¿ Σá⌐½á
«»αÑñѽѡ« αáßΦ¿αÑ¡¿Ñ .PAS. àß½¿ ó ¿¼Ñ¡¿ Σá⌐½á ¡Ñ ºáñá¡ ß»αáó«τ¡¿¬,
Γ«úñá ó ñ«»«½¡Ñ¡¿¿ ¬ »«¿ß¬π Σá⌐½á ó ΓѬπΘѼ ß»αáó«τ¡¿¬Ñ Turbo
Pascal ¿ΘÑΓ φëà Σá⌐½ ó ß»αáó«τ¡¿¬áσ, ºáñá¡¡δσ ó ¼Ñ¡ε
Options/Directories/Include Directories (¿½¿ ó ß»αáó«τ¡¿¬áσ,
ºáñá¡¡δσ ó «»µ¿¿ /I ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ TPC).
éδ ¼«ªÑΓÑ ó¬½áñδóáΓ∞ ó¬½ετáѼδÑ Σá⌐½δ ¡á ú½πí¿¡π ñ« 15
πα«ó¡Ñ⌐.
àßΓ∞ Γ«½∞¬« «ñ¡« «úαá¡¿τÑ¡¿Ñ ¡á ¿ß»«½∞º«óá¡¿Ñ ó¬½ετÑ¡¡δσ
Σá⌐½«ó: ó¬½ετÑ¡¡δ⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ ºáñá¡ ó ßÑαÑñ¿¡Ñ «»ÑαáΓ«α¡«⌐
τáßΓ¿ ¿ßσ«ñ¡«ú« ¬«ñá. öá¬Γ¿τÑ߬¿, óßÑ «»ÑαáΓ«αδ ¼Ñªñπ begin ¿ end
«»ÑαáΓ«α¡«⌐ τáßΓ¿ ñ«½ª¡δ íδΓ∞ ó «ñ¡«¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ.
Å«ñ¬½ετÑ¡¿Ñ «íΩÑ¬Γ¡«ú« Σá⌐½á.
æ¿¡Γá¬ß¿ß : {$L ¿¼∩ Σá⌐½á}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Directories/Object Directories
ä¿αÑ¬Γ¿óá $L ¿¡ßΓαπ¬Γ¿απÑΓ ¬«¼»¿½∩Γ«α « αÑñá¬Γ¿α«óá¡¿¿
π¬áºá¡¡«ú« Σá⌐½á ß ¬«¼»¿½¿απѼ«⌐ »α«úαá¼¼«⌐ ¿½¿ ¼«ñπ½Ñ¼. ä¿αÑ¬Γ¿óá
$L ¿ß»«½∞ºπÑΓß∩ ñ½∩ αÑñá¬Γ¿α«óá¡¿∩ ß ¬«ñ«¼, ¡á»¿ßá¡¡«¼ ¡á
áßßѼí½ÑαÑ ñ½∩ »«ñ»α«úαá¼¼, «íΩ∩ó½Ñ¡¡δσ ¬á¬ external. ìáºóá¡¡δ⌐
Σá⌐½ ñ«½ªÑ¡ íδΓ∞ «íΩÑ¬Γ¡δ¼ Σá⌐½«¼ (.OBJ Σá⌐½«¼). ä½∩ ¿¼Ñ¡¿ Σá⌐½á »«
π¼«½τá¡¿ε «»αÑñѽѡ« αáßΦ¿αÑ¡¿Ñ .OBJ. àß½¿ ó ¿¼Ñ¡¿ Σá⌐½á ¡Ñ ºáñá¡
ß»αáó«τ¡¿¬, Γ« ó ñ«»«½¡Ñ¡¿¿ ¬ »«¿ß¬π Σá⌐½á ó ΓѬπΘѼ ß»αáó«τ¡¿¬Ñ
Turbo Pascal ¿ΘÑΓ ºáñá¡¡δ⌐ Σá⌐½ ó ß»αáó«τ¡¿¬áσ, π¬áºá¡¡δσ ó ¼Ñ¡ε
Options/Directories/Object Directories (¿½¿ ó ß»αáó«τ¡¿¬áσ,
ºáñá¡¡δσ ó «»µ¿¿ /O ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ TPC).
ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ « αÑñá¬Γ¿α«óá¡¿¿ ß áßßѼí½Ñα«¼
ß«ñÑনΓß∩ ó ú½áóÑ 23 "鬽ετÑ¡¿Ñ áßßѼí½Ñα¡«ú« ¬«ñá".
ÉẼÑαδ αáß»αÑñѽѡ¿∩ »á¼∩Γ¿.
æ¿¡Γá¬ß¿ß : {$M stacksize (αẼÑα ßΓѬá), heapmin (¼¿¡¿¼á½∞¡δ⌐
áñαÑß ¬πτ¿), heapmax (¼á¬ß¿¼á½∞¡δ⌐ áñαÑß ¬πτ¿)}
Å« π¼«½τá¡¿ε : {$M 16384, 0, 655360}
Æ¿» : ú½«íá½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : Options/Memory Sizes
¥Γá «»µ¿∩ ºáñáÑΓ »áαá¼ÑΓαδ αáß»αÑñѽѡ¿∩ »á¼∩Γ¿ »α«úαá¼¼.
Stacksize ñ«½ªÑ¡ íδΓ∞ µÑ½δ¼ τ¿ß½«¼ ó ñ¿á»áº«¡Ñ «Γ 1024 ñ« 65520,
¬«Γ«α«Ñ ºáñáÑΓ αẼÑα ßÑú¼Ñ¡Γá ßΓѬá. heapmin ñ«½ªÑ¡ íδΓ∞ ó
ñ¿á»áº«¡Ñ «Γ 0 ñ« 655360, á heapmaσ ñ«½ªÑ¡ íδΓ∞ ó ñ¿á»áº«¡Ñ «Γ
heapmin ñ« 655360. Heapmin ¿ heapmax ºáñáεΓ ¼¿¡¿¼á½∞¡δ⌐ ¿
¼á¬ß¿¼á½∞¡δ⌐ αẼÑα ¬πτ¿ ß««ΓóÑΓßΓóÑ¡¡«.
ü«½ÑÑ »«ñα«í¡« ßÑú¼Ñ¡Γ ßΓÑ¬á ¿ ¬πτá «»¿ßá¡δ ó ú½áóÑ 4
"ÅÑαѼѡ¡δÑ" ¿ ó ú½áóÑ 16 "Åá¼∩Γ∞".
Åα¿¼Ñτá¡¿Ñ: ä¿αÑ¬Γ¿óá $M ¡Ñ ¿¼ÑÑΓ ñÑ⌐ßΓó¿∩, ¬«úñá ¿ß»«½∞ºπÑΓß∩
ó ¼«ñπ½Ñ.
ê¼∩ «óÑα½Ñ⌐¡«ú« ¼«ñπ½∩.
æ¿¡Γá¬ß¿ß : {$O ¿¼∩ ¼«ñπ½∩}
Æ¿» : ½«¬á½∞¡δ⌐
¥¬ó¿óá½Ñ¡Γ ¼Ñ¡ε : ¡ÑΓ
¥Γá ñ¿αÑ¬Γ¿óá ó¬ετáÑΓ ¼«ñπ½∞ ó «óÑα½Ñ⌐.
ä¿αÑ¬Γ¿óá {$O ¿¼∩ ¼«ñπ½∩} ¡Ñ ¿¼ÑÑΓ ñÑ⌐ßΓó¿∩, Ñß½¿ ¿ß»«½∞ºπÑΓß∩
ó ¼«ñπ½Ñ; »α¿ ¬«¼»¿½∩µ¿¿ »α«úαá¼¼δ «¡á ºáñáÑΓ ¬á¬«⌐ ¿º ¼«ñπ½Ñ⌐,
¿ß»«½∞ºπѼδσ »α«úαá¼¼«⌐, ñ«½ªÑ¡ íδΓ∞ »«¼ÑΘÑ¡ ó Σá⌐½ .OVR ó¼ÑßΓ«
.EXE.
ä¿αÑ¬Γ¿óá {$O ¿¼∩_¼«ñπ½∩} ñ«½ª¡á »«¼ÑΘáΓ∞ß∩ »«ß½Ñ
¿ß»«½∞º«óá¡¿∩ »αÑñ½«ªÑ¡¿∩ uses ó »α«úαá¼¼Ñ. Turbo Pascal óδñáÑΓ
«Φ¿í¬π, Ñß½¿ éδ »δΓáÑΓÑß∞ ßñѽáΓ∞ «óÑα½Ñ⌐¡δ¼ ¼«ñπ½∞, ¬«Γ«αδ⌐ ¡Ñ íδ½
«Γ¬«¼»¿½¿α«óá¡ ó ß«ßΓ«∩¡¿¿ {$O+}. ïεí«⌐ ¼«ñπ½∞, ¡áºóá¡¡δ⌐ ó
ñ¿αÑ¬Γ¿óÑ {$O ¿¼∩ ¼«ñπ½∩}, ñ«½ªÑ¡ íδΓ∞ «Γ¬«¼»¿½¿α«óá¡ ß ó¬½ετÑ¡¡δ¼
»ÑαѬ½ετáΓѽѼ Overlays Allowed ó IDE (φ¬ó¿óá½Ñ¡Γ ñ¿αÑ¬Γ¿óδ
¬«¼»¿½∩Γ«αá {$O+}).
ü«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ «í «óÑα½Ñ∩σ »α¿óÑñÑ¡á ó ú½áóÑ 13
"ÄóÑα½Ñ¿".
ôß½«ó¡á∩ ¬«¼»¿½∩µ¿∩.
ä¿αÑ¬Γ¿óδ πß½«ó¡«⌐ ¬«¼»¿½∩µ¿¿ Turbo Pascal »«ºó«½∩εΓ »«½πτáΓ∞
αẽ¿τ¡δ⌐ ¬«ñ ¿º «ñ¡«ú« ¿ Γ«ú« ªÑ ¿ßσ«ñ¡«ú« ΓѬßΓá ó ºáó¿ß¿¼«ßΓ¿ «Γ
πß½«ó¡δσ ß¿¼ó«½«ó.
àßΓ∞ ñóÑ «ß¡«ó¡δσ ¬«¡ßΓαπ¬µ¿¿ πß½«ó¡«⌐ ¬«¼»¿½∩µ¿¿, ¬«Γ«αδÑ
«τÑ¡∞ ¡á»«¼¿¡áεΓ «»ÑαáΓ«α if Åá߬á½∩. ÅÑαóá∩ ¬«¡ßΓαπ¬µ¿∩
{$IFxxx}...{$ENDIF}
»α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« ¿ßσ«ñ¡δ⌐ ¬«ñ ¼Ñªñπ {$IFxxx} ¿ {$ENDIF}
íπñÑΓ ¬«¼»¿½¿α«óáΓ∞ß∩ Γ«½∞¬«, Ñß½¿ πß½«ó¿Ñ, ºáñá¡¡«Ñ ó {$IFxxx},
¿¼ÑÑΓ º¡áτÑ¡¿Ñ True; Ñß½¿ πß½«ó¿Ñ ¿¼ÑÑΓ º¡áτÑ¡¿Ñ False, Γ« ¿ßσ«ñ¡δ⌐
¬«ñ ¼Ñªñπ ñóπ¼∩ φΓ¿¼¿ ñ¿αÑ¬Γ¿óἿ ¿ú¡«α¿απÑΓß∩.
éΓ«αá∩ ¬«¡ßΓαπ¬µ¿∩ ¿ßσ«ñ¡«⌐ ¬«¼»¿½∩µ¿¿ :
{$IFxxx}...{$ELSE}...{$ENDIF}
»α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« ¿ßσ«ñ¡δ⌐ ΓѬßΓ ¼Ñªñπ {$IFxxx} ¿ {$ELSE},
¿½¿ ¿ßσ«ñ¡δ⌐ ΓѬßΓ ¼Ñªñπ {$ELSE} ¿ {$ENDIF} íπñπΓ ¬«¼»¿½¿α«óáΓ∞ß∩ ó
ºáó¿ß¿¼«ßΓ¿ «Γ πß½«ó¿∩, ºáñá¡¡«ú« {$IFxxx}.
ì¿ªÑ »α¿óÑñÑ¡« ¡Ñ߬«½∞¬« »α¿¼Ñα«ó ¬«¡ßΓαπ¬µ¿⌐ πß½«ó¡«⌐
¬«¼»¿½∩µ¿¿:
{$IFDEF Debug}
Writeln ('X=', X);
{$ENDIF}
{$IFDEF CPU87}
{$N+}
type
Real = Double;
{$ELSE}
{$N-}
type
Single = Real;
Double = Real;
Extended = Real;
Comp = Real;
{$ENDIF}
è«¡ßΓαπ¬µ¿¿ πß½«ó¡«⌐ ¬«¼»¿½∩µ¿¿ ¼«úπΓ ¿¼ÑΓ∞ πα«óÑ¡∞
󽫪ѡ¡«ßΓ¿ ñ« 16. ä½∩ ¬áªñ«⌐ ñ¿αÑ¬Γ¿óδ {$IFxxx} ß««ΓóÑΓßΓóπεΘá∩
ñ¿αÑ¬Γ¿óá {$ENDIF} ñ«½ª¡á íδΓ∞ ¡á⌐ñÑ¡á ó¡πΓα¿ Γ«ú« ªÑ ¿ßσ«ñ¡«ú«
Σá⌐½á - φΓ« «º¡áτáÑΓ, τΓ« ñ«½ª¡« íδΓ∞ «ñ¿¡á¬«ó«Ñ ¬«½¿τÑßΓó«
{$IFxxx} ¿ {$ENDIF} ó ¬áªñ«¼ ¿ßσ«ñ¡«¼ Σá⌐½Ñ.
ôß½«ó¡δÑ ß¿¼ó«½δ.
ôß½«ó¡á∩ ¬«¼»¿½∩µ¿∩ «ß¡«óá¡á ¡á «µÑ¡¬Ñ πß½«ó¡δσ ß¿¼ó«½«ó.
ôß½«ó¡δÑ ß¿¼ó«½δ «»αÑñѽ∩εΓß∩ ¿ «Γ¼Ñ¡∩εΓß∩ (ºáíδóáεΓß∩) ß »«¼«Θ∞ε
ñ¿αÑ¬Γ¿ó
{$DEFINE ¿¼∩}
{$UNDEF ¿¼∩}
¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ »ÑαѬ½ετáΓѽ∞ /D ó ¬«¼»¿½∩Γ«αÑ
¬«¼á¡ñ¡«⌐ ßΓ᫬¿ (¿½¿ ¬«¼á¡ñπ ¼Ñ¡ε Options/Compiler/Conditional
Defines ó¡πΓα¿ ¿¡ΓÑúα¿α«óá¡¡«⌐ ßαÑñδ).
ôß½«ó¡δÑ ß¿¼ó«½δ ½πτΦÑ óßÑú« ßαáó¡¿¼δ ß íπ½Ñó߬¿¼¿
»ÑαѼѡ¡δ¼¿: «¡¿ ¿½¿ ¿¼ÑεΓ º¡áτÑ¡¿Ñ True («»αÑñѽѡ) ¿½¿ False
(¡Ñ«»αÑñѽѡ). ä¿αÑ¬Γ¿óá {$DEFINE} πßΓá¡áó½¿óáÑΓ ñ½∩ ºáñá¡¡«ú«
ß¿¼ó«½á º¡áτÑ¡¿Ñ True, á ñ¿αÑ¬Γ¿óá {$UNDEF} πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ
False.
ôß½«ó¡δÑ ß¿¼ó«½δ ß½ÑñπεΓ Γ«τ¡« Γᬿ¼ ªÑ »αáó¿½á¼, ¬á¬
¿ñÑ¡Γ¿Σ¿¬áΓ«αδ Åá߬á½∩: «¡¿ ñ«½ª¡δ ¡áτ¿¡áΓ∞ß∩ ß íπ¬óδ, ºá ¬«Γ«α«⌐
ß½ÑñπÑΓ ½εíá∩ ¬«¼í¿¡áµ¿∩ íπ¬ó, µ¿Σα ¿ »«ñτÑનóá¡¿⌐. Ä¡¿ ¼«úπΓ íδΓ∞
½εí«⌐ ñ½¿¡δ, ¡« Γ«½∞¬« »ÑαóδÑ 63 ß¿¼ó«½á ∩ó½∩εΓß∩ º¡áτáΘ¿¼¿.
Åα¿¼Ñτá¡¿Ñ: ôß½«ó¡δÑ ß¿¼ó«½δ ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ Åá߬á½∩ ¡Ñ ¿¼ÑεΓ
¡¿¬á¬«ú« ß««Γ¡«ΦÑ¡¿∩. ôß½«ó¡δÑ ß¿¼ó«½δ ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞ ó
á¬Γ¿ó¡«⌐ »α«úαá¼¼Ñ, á ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ »α«úαá¼¼δ ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞
ó πß½«ó¡δσ ñ¿αÑ¬Γ¿óáσ.
ìá»α¿¼Ñα, ¬«¡ßΓαπ¬µ¿∩
const
Debug = True;
begin
{$IFDEF Debug}
Writeln('OΓ½áñ¬á ó¬½ετÑ¡á');
{$ENDIF}
end;
¡Ñ íπñÑΓ ¬«¼»¿½¿α«óáΓ∞ »αÑñ½«ªÑ¡¿Ñ Writeln.
ǡὫú¿τ¡«, ¬«¡ßΓαπ¬µ¿∩
{$DEFINE Debug}
begin
if Debug then
Writeln('OΓ½áñ¬á ó¬½ετÑ¡á');
end;
íπñÑΓ »α¿ó«ñ¿Γ∞ ¬ «Φ¿í¬Ñ "¡Ñ¿ºóÑßΓ¡δ⌐ ¿ñÑ¡Γ¿Σ¿¬áΓ«α" ó
«»ÑαáΓ«αÑ if.
Turbo Pascal «»αÑñѽ∩ÑΓ ß½ÑñπεΘ¿Ñ ßΓá¡ñáαΓ¡δÑ πß½«ó¡δÑ
ß¿¼ó«½δ:
VER60 óßÑúñá «»αÑñѽѡ, π¬áºδóáÑΓ, τΓ« φΓ« óÑαß¿∩ 6.0 Turbo
Pascal. äαπú¿Ñ óÑαß¿¿ (¡áτ¿¡á∩ ß 4.0) «»αÑñѽ∩εΓ
ß««ΓóÑΓßΓóπεΘ¿Ñ ß¿¼ó«½δ óÑαß¿¿; ¡á»α¿¼Ñα, VER40 ñ½∩
óÑαß¿¿ 4.0 ¿ Γ.ñ.
MSDOS óßÑúñá «»αÑñѽѡ, π¬áºδóáÑΓ, τΓ« φΓ« «»Ñαᵿ«¡¡á∩
ß¿ßΓѼá - MS DOS ¿½¿ PC DOS. éÑαß¿¿ Turbo Pascal ñ½∩
ñαπú¿σ «»Ñαᵿ«¡¡δσ ß¿ßΓѼ íπñπΓ ó¼ÑßΓ« φΓ«ú« ß¿¼ó«½á
«»αÑñѽ∩Γ∞ ß¿¼ó«½¿τÑ߬«Ñ ¿¼∩ ñ½∩ «»αÑñѽѡ¡«⌐
«»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ.
CPU86 óßÑúñá «»αÑñѽѡ, π¬áºδóáÑΓ, τΓ« µÑ¡Γαá½∞¡δ⌐ »α«µÑßß«α
»α¿¡áñ½Ñª¿Γ ¬ ßѼÑ⌐ßΓóπ »α«µÑßß«α«ó 80σ86. éÑαß¿¿ Turbo
Pascal ñ½∩ ñαπú¿σ µÑ¡Γαá½∞¡δσ »α«µÑßß«α«ó íπñπΓ
«»αÑñѽ∩Γ∞ ß««ΓóÑΓßΓóπεΘÑÑ ß¿¼ó«½¿τÑ߬«Ñ ¿¼∩ ñ½∩
«»αÑñѽѡ¡«ú« µÑ¡Γαá½∞¡«ú« »α«µÑßß«αá.
CPU87 «»αÑñѽѡ, Ñß½¿ τ¿ß½«ó«⌐ ß«»α«µÑßß«α 8087 ¿¼ÑÑΓß∩ ó
¡á½¿τ¿¿ ó« óαѼ∩ ¬«¼»¿½∩µ¿¿. àß½¿ ¬«¡ßΓαπ¬µ¿∩ {$IFDEF
CPU87} {$N+} {$ELSE} {$N-} {$ENDIF} »«∩ó½∩ÑΓß∩ ó ¡áτá½Ñ
¬«¼»¿½∩µ¿¿, Γ« Æπαí« Åá߬á½∞ íπñÑΓ áóΓ«¼áΓ¿τÑ߬¿
óδí¿αáΓ∞ ñ½∩ ñá¡¡«ú« ¬«¼»¿½∩Γ«αá ß««ΓóÑΓßΓóπεΘπε ¼«ñѽ∞
úÑ¡Ñαᵿ¿ ¬«ñá ñ½∩ τ¿ßѽ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
äαπú¿Ñ πß½«ó¡δÑ ß¿¼ó«½δ ¼«úπΓ íδΓ∞ «»αÑñÑ½Ñ¡δ »ÑαÑñ
¬«¼»¿½∩µ¿Ñ⌐ ß »«¼«Θ∞ε ¼Ñ¡ε Options/Compiler/Conditional Defines ¿½¿
«»µ¿¿ /D ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ »α¿ ¿ß»«½∞º«óá¡¿¿ TPC.
ä¿αÑ¬Γ¿óá Define («»αÑñѽ¿Γ∞).
æ¿¡Γá¬ß¿ß : {$DEFINE ¿¼∩}
Ä»αÑñѽ∩ÑΓ πß½«ó¡δ⌐ ß¿¼ó«½ ºáñá¡¡«ú« ¿¼Ñ¡¿. 濼ó«½
αáß»«º¡áÑΓß∩ ñ« ¬«¡µá ¬«¼»¿½∩µ¿¿ ó ΓѬπΘѼ ¼«ñπ½Ñ, ó ¬«Γ«α«¼
«íΩ∩ó½Ñ¡ φΓ«Γ ß¿¼ó«½ ¿½¿ ñ« »«∩ó½Ñ¡¿∩ ñ¿αÑ¬Γ¿óδ {$UNDEF ¿¼∩}.
ä¿αÑ¬Γ¿óá {$DEFINE ¿¼∩} ¡Ñ ¿¼ÑÑΓ φΣΣѬΓá, Ñß½¿ ¿¼∩ πªÑ
«»αÑñѽѡ«.
ä¿αÑ¬Γ¿óá UNDEF.
æ¿¡Γá¬ß¿ß : {$UNDEF ¿¼∩}
ÄΓ¼Ñ¡∩ÑΓ «»αÑñѽѡ¿Ñ »αÑñóáα¿Γѽ∞¡« «»αÑñѽѡ¡«ú« πß½«ó¡«ú«
ß¿¼ó«½á. ¥Γ«Γ ß¿¼ó«½ ßΓá¡«ó¿Γß∩ ¡Ñ«»αÑñѽѡ¡δ¼ ñ« ¬«¡µá ¬«¼»¿½∩µ¿¿
¿½¿ ñ« ΓÑσ »«α, »«¬á «¡ «»∩Γ∞ ¡Ñ »«∩ó¿Γß∩ ó ñ¿αÑ¬Γ¿óÑ {$DEFINE
¿¼∩}. ä¿αÑ¬Γ¿óá {$UNDEF ¿¼∩} ¡Ñ ¿¼ÑÑΓ φΣΣѬΓá, Ñß½¿ ¿¼∩ πªÑ
¡Ñ«»αÑñѽѡ«.
ä¿αÑ¬Γ¿óá IFDEF.
æ¿¡Γá¬ß¿ß : {$IFDEF ¿¼∩}
諼»¿½¿απÑΓ ¿ßσ«ñ¡δ⌐ ΓѬßΓ, ¬«Γ«αδ⌐ ß½ÑñπÑΓ ºá ñ¿αÑ¬Γ¿ó«⌐,
Ñß½¿ π¬áºá¡¡«Ñ ¿¼∩ «»αÑñѽѡ«.
ä¿αÑ¬Γ¿óá IFNDEF.
æ¿¡Γá¬ß¿ß : {$IFNDEF ¿¼∩}
諼»¿½¿απÑΓ ¿ßσ«ñ¡δ⌐ ΓѬßΓ, ¬«Γ«αδ⌐ ß½ÑñπÑΓ ºá ñ¿αÑ¬Γ¿ó«⌐,
Ñß½¿ π¬áºá¡¡«Ñ ¿¼∩ ¡Ñ«»αÑñѽѡ«.
ä¿αÑ¬Γ¿óá IFOPT.
æ¿¡Γá¬ß¿ß : {$IFOPT »ÑαѬ½ετáΓѽ∞}
諼»¿½¿απÑΓ ¿ßσ«ñ¡δ⌐ ΓѬßΓ, ¬«Γ«αδ⌐ ß½ÑñπÑΓ ºá ñ¿αÑ¬Γ¿ó«⌐,
Ñß½¿ »ÑαѬ½ετáΓѽ∞ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ ¡áσ«ñ¿Γß∩ ó ºáñá¡¡«¼ ß«ßΓ«∩¡¿¿.
ÅÑαѬ½ετáΓѽ∞ ß«ßΓ«¿Γ ¿º ¿¼Ñ¡¿ «»µ¿¿ »ÑαѬ½ετáΓѽ∩, ºá ¬«Γ«αδ¼
ß½ÑñπÑΓ + ¿½¿ -. ìá»α¿¼Ñα, ¬«¡ßΓαπ¬µ¿∩
{$IFOPT N+}
type Real = Extended;
{$ENDIF}
íπñÑΓ ¬«¼»¿½¿α«óáΓ∞ «íΩ∩ó½Ñ¡¿Ñ Γ¿»á, Ñß½¿ «»µ¿∩ $N ó ñá¡¡δ⌐
¼«¼Ñ¡Γ óαѼѡ¿ á¬Γ¿ó¡á.
ä¿αÑ¬Γ¿óá ELSE.
æ¿¡Γá¬ß¿ß : {$ELSE}
ÅÑαѬ½ετáÑΓ ¼Ñªñ𠬫¼»¿½¿α«ó᡿Ѽ ¿ ¿ú¡«α¿α«ó᡿Ѽ ¿ßσ«ñ¡«ú«
ΓѬßΓá, óδñѽѡ¡«ú« ß »«¼«Θ∞ε »«ß½Ññ¡Ñ⌐ ñ¿αÑ¬Γ¿óδ {$IFxxx} ¿
ß½ÑñπεΘÑ⌐ ñ¿αÑ¬Γ¿óδ {$ENDIF}.
ä¿αÑ¬Γ¿óá ENDIF.
æ¿¡Γá¬ß¿ß : {$ENDIF}
çáóÑαΦáÑΓ πß½«ó¡πε ¬«¼»¿½∩µ¿ε, ¿¡¿µ¿¿α«óá¡¡πε »«ß½Ññ¡Ñ⌐
ñ¿αÑ¬Γ¿ó«⌐ {$IFxxx}.