home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-12-06 | 88.9 KB | 3,001 lines |
- âïÇéÇ 2 -- 1 --
- -------
-
- éæÅï¢éÇ₧Öêà ÄèìÇ
- -----------------------------------------------------------------
-
- éß»½δóáεΘ¿Ñ «¬¡á ¼«úπΓ »α¿ñáΓ∞ óáΦÑ⌐ »α«úαá¼¼Ñ Γ«Γ
- »α«ΣÑßß¿«¡á½∞¡δ⌐ ó¿ñ, ¬«Γ«αδ⌐ ¡Ñ ¼«ªÑΓ íδΓ∞ ñ«ßΓ¿ú¡πΓ ñαπú¿¼¿
- ßαÑñßΓóἿ. éß»½δóáεΘ¿Ñ «¬¡á ß«ºñáεΓ ó»ÑτáΓ½Ñ¡¿Ñ, τΓ« óδ, ¬á¬
- »α«úαá¼¼¿ßΓ, ó ß«óÑαΦÑ¡ßΓóÑ ó½áñÑÑΓÑ φ¬αá¡«¼. Ç Γᬠ¬á¬
- »«½∞º«óáΓѽ∞ «íδτ¡« ßπñ¿Γ « »α«úαá¼¼Ñ »« ÑÑ »«½∞º«óáΓѽ∞߬«¼π
- ¿¡ΓÑαΣÑ⌐ßπ, Γ« φΓ« »«½«ª¿Γѽ∞¡«Ñ ó»ÑτáΓ½Ñ¡¿Ñ αáß»α«ßΓαá¡¿Γß∩ ¿ ¡á
- óßε »α«úαá¼¼π ó µÑ½«¼.
-
- äá¡¡á∩ ú½áóá ß«ñÑαª¿Γ «»¿ßá¡¿Ñ »«½¡«ú« ¡áí«αá Σπ¡¬µ¿⌐ ñ½∩
- óß»½δóáεΘ¿σ «¬«¡, ¬«Γ«αδÑ »«ºó«½∩Γ óá¼ ß«ºñáóáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞
- ¼¡«ªÑßΓóÑ¡¡δÑ «¬¡á.
-
- Åα«úαá¼¼δ π»αáó½Ñ¡¿∩ «¬¡á¼¿ ¿ß»«½∞ºπεΓ Σπ¡¬µ¿¿ »α∩¼«ú«
- ñ«ßΓπ»á ¬ ó¿ñÑ«»á¼∩Γ¿, »αÑñßΓáó½Ñ¡¡δÑ ó â½áóÑ 1. êº-ºá Γ«ú«, τΓ«
- «¬¡á ó í«½∞Φ¿¡ßΓóÑ ß½πτáÑó, ¿¼ÑεΓ º¡áτ¿Γѽ∞¡« í«½∞Φ¿⌐ αẼÑα, τѼ
- ¼Ñ¡ε, Γ« ¿ß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿º ROM-BIOS »α«ßΓ« ¡Ñ󫺼«ª¡«, -
- ñáªÑ ¡á ßá¼δσ íδßΓαδσ ¬«¼»∞εΓÑαáσ.
-
- Äñ¡á¬« »ÑαÑñ αáßß¼«ΓαÑ¡¿Ñ¼ «¬«¡¡δσ Σπ¡¬µ¿⌐ «τÑ¡∞ ó᪡«
- »αáó¿½∞¡« »«¡∩Γ∞, τΓ« ªÑ Γá¬«Ñ óß»½δóáεΘ¿Ñ «¬¡á ¿ ¬á¬ «¡¿
- ¿ß»«½∞ºπεΓß∩.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 2 --
-
-
- ÆÑ«α¿∩ óß»½δóáεΘ¿σ «¬«¡.
- -----------------------------------------------------------------
-
- éß»½δóáεΘÑÑ «¬¡« »αÑñßΓáó½∩ÑΓ ß«í«⌐ τáßΓ∞ φ¬αá¡á,
- ¿ß»«½∞ºπѼπε ñ½∩ ߻ѵ¿á½∞¡δσ µÑ½Ñ⌐. ÅÑαÑñ »«∩ó½Ñ¡¿Ñ¼ «¬¡á ΓѬπΘÑÑ
- ß«ñÑন¼«Ñ φ¬αá¡á ß«σαá¡∩ÑΓß∩ ¿ ½¿Φ∞ »«ß½Ñ φΓ«ú« »α«¿ºó«ñ¿Γß∩
- «Γ«íαáªÑ¡¿Ñ «¬¡á.
-
- Åα¿ ºáóÑαΦÑ¡¿¿ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ ñá¡¡«Ñ «¬¡«, φΓ« «¬¡«
- πñá½∩ÑΓß∩, á »Ñαó«¡áτá½∞¡«Ñ ß«ñÑন¼«Ñ φ¬αá¡á ó«ßßΓá¡áó½¿óáÑΓß∩.
- (äá¡¡δ⌐ »α«µÑßß á¡á½«ú¿τÑ¡ »«∩ó½Ñ¡¿ε óß»½δóáεΘ¿σ ¼Ñ¡ε). 黫½¡Ñ
- 󫺼«ª¡« «ñ¡«óαѼѡ¡«Ñ «Γ«íαáªÑ¡¿Ñ ¡á φ¬αá¡Ñ ¡Ñ߬«½∞¬¿σ «¬«¡.
-
- ò«Γ∩ φΓ« ¿ ¡Ñ «í∩ºáΓѽ∞¡«, ¡« óßÑ σ«α«Φ¿Ñ »α«úαá¼¼δ,
- αáí«ΓáεΘ¿Ñ ß «¬¡á¼¿, »«ºó«½∩εΓ ¿¡ΓÑαá¬Γ¿ó¡« ¿º¼Ñ¡∩Γ∞ αẼÑαδ ¿
- »«º¿µ¿ε «¬¡á ¡á φ¬αá¡Ñ. æ½Ññ«óáΓѽ∞¡«, «¬«¡¡δÑ Σπ¡¬µ¿¿ ñ«»π߬áεΓ,
- τΓ« «¬¡« ¡Ñ óßÑúñá íπñÑΓ ¡áσ«ñ¿Γ∞ß∩ ó «ñ¡«¼ ¿ Γ«¼ ªÑ ¼ÑßΓÑ ¿
- ¿¼ÑΓ∞ «ñ¿¡ ¿ ëà ªÑ αẼÑα.
-
- Éáºαáí«Γ¬á Σπ¡¬µ¿⌐, π»αáó½∩εΘ¿σ «¬¡á¼¿, ∩ó½∩ÑΓß∩ ß½«ª¡«⌐
- ºáñáτÑ⌐ ¿º-ºá ¡Ñ«íσ«ñ¿¼«ßΓ¿ «íÑß»ÑτÑ¡¿∩ ºá»αÑΓá ñ½∩ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ «ßπΘÑßΓó½∩Γ∞ óδó«ñ ºá úαá¡¿µδ «¬¡á. ū߬«½∞¬π αẼÑαδ
- «¬¡á ¼«úπΓ ¿º¼Ñ¡∩Γ∞ß∩ íѺ "ß««íΘÑ¡¿∩" «í φΓ«¼ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ, Γ« ¿¼Ñ¡¡« Σπ¡¬µ¿¿ π»αáó½Ñ¡¿∩ «¬¡á¼¿, á ¡Ñ »α¿¬½áñ¡á∩
- »α«úαá¼¼á, ñ«½ª¡δ »αÑñ«σαá¡¿Γ∞ «Γ óδσ«ñá ºá úαá¡¿µδ.
- æ½Ññ«óáΓѽ∞¡«, óßÑ «íδτ¡δÑ Σπ¡¬µ¿¿ æ¿, «ßπΘÑßΓó½∩εΘ¿Ñ óó«ñ/óδó«ñ
- ¡á ¬«¡ß«½∞ (¡á»α¿¼Ñα, printf() ¿ lets() ) , ¡Ñ ¼«úπΓ íδΓ∞
- ¿ß»«½∞º«óá¡δ ¿ ñ«½ª¡δ íδΓ∞ ºá¼Ñ¡Ñ¡δ ¡á Σπ¡¬µ¿¿, «α¿Ñ¡Γ¿α«óá¡¡δÑ
- ¡á óó«ñ/óδó«ñ ß ¿ß»«½∞º«ó᡿Ѽ «¬«¡.
-
- ÆÑ«α¿∩ ¿ß»«½∞º«óá¡¿∩ «¬«¡ ¬αá⌐¡Ñ »α«ßΓá. èáªñá∩ «Γñѽ∞¡á∩
- ºáñáτá »α«úαá¼¼δ ¿ß»«½∞ºπÑΓ ßó«Ñ ß«íßΓóÑ¡¡«Ñ «¬¡«. Åα¿ ºá»π߬Ñ
- ºáñáτ¿ á¬Γ¿ó¿απÑΓß∩ ¿ ÑÑ «¬¡«. Åα¿ ºáóÑαΦÑ¡¿¿ αáí«Γδ ºáñáτ¿ - ÑÑ
- «¬¡« πñá½∩ÑΓß∩. àß½¿ ªÑ ºáñáτá »αÑαδóáÑΓß∩, Γ«, σ«Γ∩ ÑÑ αáí«Γá
- »α¿«ßΓá¡áó½¿óáÑΓß∩, ¡« ÑÑ «¬¡« ¡Ñ πñá½∩ÑΓß∩, á ¿¡¿µ¿¿απѼá∩
- »αÑαδó᡿Ѽ ºáñáτá, »α«ßΓ« ß«ºñáÑΓ ßó«Ñ «¬¡« »«óÑασ »αÑñδñπΘÑú«.
- (Äíδτ¡« ΓÑ ºáñáτ¿, ¬«Γ«αδÑ ¡Ñ ¿ß»«½∞ºπεΓ «¬«¡, «τ¿ΘáεΓ φ¬αá¡. ¥Γ«
- »α¿ó«ñ¿Γ ¬ αáßßÑ¿óá¡¿ε 󡿼᡿∩ »«½∞º«óáΓѽ∩. é Γ« ªÑ óαѼ∩ »α¿
- ¿ß»«½∞º«óá¡¿¿ «¬«¡ »«ñ«í¡δÑ »αÑαδóá¡¿∩ óδú½∩ñ∩Γ ¬á¬ óαѼѡ¡δÑ
- »áπºδ).
-
- ùΓ«íδ »«¡∩Γ∞, ¬á¬ «¬¡á ¼«úπΓ íδΓ∞ ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡«
- ¿ß»«½∞º«óá¡δ, »αÑñ»«½«ª¿¼, τΓ« óδ αáºαáí«Γ὿ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α,
- ó¬½ετáεΘ¿⌐ α∩ñ ñ«»«½¡¿Γѽ∞¡δσ Σπ¡¬µ¿⌐, Γᬿσ ¬á¬ "ºá»¿ß¡á∩
- ¬¡¿ª¬á", ¬á½∞¬π½∩Γ«α ß τÑΓδα∞¼∩ ¼áΓѼáΓ¿τÑ߬¿¼¿ «»Ñαᵿ∩¼¿ ¿
- ¬«¡óÑαΓÑα τ¿ßѽ ¿º ñÑß∩Γ¿τ¡«ú« ó ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ.
- Æá¬ ¬á¬ óßÑ φΓ¿ Σπ¡¬µ¿¿ ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ¡Ñ «Γ¡«ß∩Γß∩ ¬
- «»Ñαᵿ∩¼ αÑñá¬Γ¿α«óá¡¿∩ ΓѬßΓá, Γ« ¿σ αÑ὿ºáµ¿∩ ΓÑß¡«
- »ÑαÑ»½ÑΓáÑΓß∩ ß ¬«¡µÑ»µ¿Ñ⌐ óß»½δóáεΘ¿σ «¬«¡. Æá¬¿¼ «íαẫ¼
- »«½πτáÑΓß∩, τΓ« ¿ß»«½∞º«óá¡¿Ñ ¬á¬«⌐-½¿í« ¿º óß»«¼«úáΓѽ∞¡δσ
- Σπ¡¬µ¿⌐ ½¿Φ∞ »α¿«ßΓá¡áó½¿óáÑΓ «ß¡«ó¡πε ºáñáτπ (αÑñá¬Γ¿α«óá¡¿Ñ), á
- ¡Ñ »αÑαδóáÑΓ ÑÑ.
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 3 --
-
-
-
- Ĭ«¡¡δÑ ßΓαπ¬Γπαδ.
- -----------------------------------------------------------------
-
- Åαáó¿½∞¡á∩ αÑ὿ºáµ¿∩ óß»½δóáεΘ¿σ «¬«¡ ΓαÑíπÑΓ, τΓ«íδ óßÑ
- áΓα¿íπΓδ, ¡Ñ«íσ«ñ¿¼δÑ ñ½∩ «»¿ßá¡¿∩ ¿σ úαá¡¿µ, í뫨 ó ½εí«Ñ óαѼ∩
- ñ«ßΓπ»¡δ óßѼ «¬«¡¡δ¼ Σπ¡¬µ¿∩¼. ä½∩ ñ«ßΓ¿ªÑ¡¿∩ φΓ«ú« ¼δ íπñѼ
- ¿ß»«½∞º«óáΓ∞ ¬«¡µÑ»µ¿ε ßΓαπ¬Γπαδ, á¡á½«ú¿τ¡πε Γ«⌐, ¬«Γ«αá∩
- ¿ß»«½∞º«óá½áß∞ »α¿ «»¿ßá¡¿¿ Σπ¡¬µ¿⌐ ß»π߬áεΘ¿σß∩ ¼Ñ¡ε. Äñ¡á¬«
- ßΓαπ¬Γπαá «¬¡á ß«ñÑαª¿Γ ¡Ñ¬«Γ«απε ߻ѵ¿Σ¿τÑ߬πε ¿¡Σ«α¼áµ¿ε. 쿪Ñ
- »«¬áºá¡ ¼áßß¿ó, ¿ß»«½∞ºπѼδ⌐ ñ½∩ σαá¡Ñ¡¿∩ ßΓαπ¬Γπα.
-
- struct window_frame
- int startx, endx, starty, endy; /*»«º¿µ¿∩ «¬¡á*/
- int curx, cury; /*ΓѬπΘá∩ »«º¿µ¿∩ ¬παß«αá ó «¬¡Ñ*/
- unsigned chsr *p; /*π¬áºáΓѽ∞ íπΣÑαá*/
- char *header; /*¿¼∩ «¬¡á*/
- int border; /*ó¬½ετÑ¡¿Ñ/ó䬽ετÑ¡¿Ñ úαá¡¿µ*/
- int active; /*¡á φ¬αá¡Ñ ¿½¿ ¡Ñó¿ñ¿¼«*/
- } frame [MAX_FRAME];
-
- ÅÑαѼѡ¡δÑ startx, starty, endx ¿ endy σαá¡∩Γ ¬««αñ¿¡áΓδ
- óÑασ¡Ñú« ½Ñó«ú« ¿ ¡¿ª¡Ñú« »αáó«ú« πú½«ó «¬¡á. ÆÑ¬πΘá∩ »«º¿µ¿∩
- ¬παß«αá ó «¬¡Ñ ß«ñÑনΓß∩ ó »ÑαѼѡ¡δσ curx ¿ cury. æ«σαá¡Ñ¡¿Ñ
- φΓ¿σ »ÑαѼѡ¡δσ «ßπΘÑßΓó½∩ÑΓß∩ ¿º-ºá Γ«ú«, τΓ« »«½«ªÑ¡¿Ñ ¬παß«αá
- ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ß∩ ¿ óαπτ¡πε ¿ »πΓѼ ¿ß»«½∞º«óá¡¿∩ «¬«¡¡δσ Σπ¡¬µ¿⌐.
- ô¬áºáΓѽ∞ p π¬áºδóáÑΓ ¡á «í½áßΓ∞ »á¼∩Γ¿, σαá¡∩ΘÑ⌐ »Ñαó«¡áτá½∞¡«Ñ
- ß«ñÑন¼«Ñ τáßΓ¿ φ¬αá¡á, ºá¡∩Γ«⌐ ñá¡¡δ¼ «¬¡«¼. ùáßΓ« «¬¡«
- ß¡áíªáÑΓß∩ ºáú«½«ó¬«¼, ¿ñÑ¡µ¿Σ¿απεΘ¿¼ ß«ñÑন¼«Ñ «¬¡á. ìá φΓ«Γ
- ºáú«½«ó«¬ ¿ π¬áºδóáÑΓ header. ÅÑαѼѡ¡á∩ border ¿ß»«½∞ºπÑΓß∩ ñ½∩
- «»αÑñѽѡ¿∩ ¡Ñ«íσ«ñ¿¼«ßΓ¿ óδτÑατ¿óá¡¿∩ úαá¡¿µ ó«¬απú «¬¡á.
- ÅÑαѼѡ¡á∩ active πßΓá¡«ó½Ñ¡á ó "1", Ñß½¿ ó ñá¡¡δ⌐ ¼«¼Ñ¡Γ «¬¡« ¡á
- φ¬αá¡Ñ, ¿ ó "0" - ó »α«Γ¿ó¡«¼ ß½πτáÑ.
-
- æ Γ«τ¬¿ ºαÑ¡¿∩ »α«úαá¼¼¿α«óá¡¿∩ ¿ß»«½∞º«óá¡¿Ñ «¬«¡ ¡Ñ
- ß«ßΓáó½∩ÑΓ Γαπñá. é«-»Ñαóδσ, óδ ß«ºñáÑΓÑ ßΓαπ¬Γπα𠫬¡á, ºáΓѼ,
- ¬«úñá »«∩ó½∩ÑΓß∩ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ó «¬¡Ñ, Γ« »α¿ ºá»¿ß¿ ó ¡Ñú« óδ
- ¿ß»«½∞ºπÑΓÑ ß»Ñµ¿á½∞¡δÑ «¬«¡¡«-«α¿Ñ¡Γ¿α«óá¡¡δÑ Σπ¡¬µ¿¿
- óó«ñá/óδó«ñá. è«úñá ªÑ «¬¡« í«½∞ΦÑ ¡Ñ ¡πª¡«, óδ ñÑá¬Γ¿ó¿απÑΓÑ
- Ñú«.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 4 --
-
-
- 櫺ñá¡¿Ñ ßΓαπ¬Γπαδ «¬¡á.
- -----------------------------------------------------------------
-
- ì¿ªÑ »«¬áºá¡á Σπ¡¬µ¿∩ »«ñ ¡áºó᡿Ѽ make_window(),
- ¿ß»«½∞ºπѼá∩ ñ½∩ ß«ºñá¡¿∩ ßΓαπ¬Γπαδ «¬¡á.
-
-
- /* 櫺ñáΓ∞ αἬπ ß»π߬áεΘÑú«ß∩ «¬¡á.
- 髺óαáΓ¿Γ∞ 1, Ñß½¿ αá¼¬á «¬¡á ¼«ªÑΓ íδΓ∞ ß«ºñá¡á
- ¿ 0 ó »α«Γ¿ó¡«¼ ß½πτáÑ */
- ¼á¬Ñ_window(num, header,startx,starty,endx,endy,border)
- int num; /* ¡«¼Ñα «¬¡á */
- char *header; /* ΓѬßΓ ºáú«½«ó¬á */
- int startx,starty; /* ¬««αñ¿¡áΓδ X,Y ½Ñó«ú« óÑασ¡Ñú« πú½á */
- int endx,endy; /* ¬««αñ¿¡áΓδ X,Y »αáó«ú« óÑασ¡Ñú« πú½á */
- int border; /* íѺ í«αñεαá, Ñß½¿ 0 */
- {
- unsigned char *p;
-
- if(num>MAX_FRAME) {
- printf("Too many windows\n");
- return 0;
- }
-
- if((startx>24) || (startx<0) || (starty>78) || (starty<0)) {
- printf("range error");
- return 0;
- }
-
- if((endx>24) || (endy>79)) {
- printf("window won't fit");
- return 0;
- }
-
- /* «ΓóÑßΓ¿ ñ«ßΓáΓ«τ¡«Ñ ¬«½¿τÑßΓó« »á¼∩Γ¿ */
- p=(unsigned char *) malloc(2*(endx-startx+1)*(endy-starty+1));
- if(!p) exit(1); /* »ÑαÑ⌐Γ¿ ¬ óδßΦѼπ ß«íßΓóÑ¡¡«¼π «íαáí«Γτ¿¬π
- «Φ¿í«¬ */
-
- /* ß«ºñáΓ∞ αἬπ */
- frame[num].startx = startx; frame[num].endx = endx;
- frame[num].starty = starty; frame[num].endy = endy;
- frame[num].p = p;
- frame[num].haeder = header;
- frame[num].border = border;
- frame[num].active = 0;
- frame[num].curx = 0; frame[num].cury = 0;
- return 1;
- }
-
- èᬠóδ ¼«ªÑΓÑ ó¿ñÑΓ∞ ¿º «»¿ßá¡¿∩ Σπ¡¬µ¿¿, «¡á ΓαÑíπÑΓ
- »ÑαÑñáτ¿ ¡«¼Ñαá «¬¡á, ßΓαπ¬Γπα𠬫ëα«ú« óδ σ«Γ¿ΓÑ ß«ºñáΓ∞, ¿
- óßÑ⌐ «ßΓá½∞¡«⌐ ß««ΓóÑΓßΓóπεΘÑ⌐ ¿¡Σ«α¼áµ¿¿. ì¿ªÑ »«¬áºá¡ »α¿¼Ñα
- ó맮óá make_window() ñ½∩ ß«ºñá¡¿∩ «¬¡á ¡«¼Ñα 0 ß ºáú«½«ó¬«¼
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 5 --
-
-
- "ÉÑñá¬Γ«α [Esß ñ½∩ óδσ«ñá]", ß óÑασ¡¿¼ ½Ñóδ¼ πú½«¼ ó 0,0 ¿ ß
- ¡¿ª¡¿¼ »αáóδ¼ πú½«¼ ó 24,78 ¿ ¿¼ÑεΘѼ úαá¡¿µδ.
-
- make_window (0, "ÉÑñá¬Γ«α [Ese ñ½∩ óδó«ñá]", 0,0,24,78, BORDER);
-
- ÄΓ¼ÑΓ¿¼, τΓ« »ÑαѼѡ¡δÑ, «»αÑñѽ∩εΘ¿Ñ »«º¿µ¿ε ¬παß«αá curx ¿
- cury πßΓá¡áó½¿óáεΓß∩ 0. ¥Γ« «º¡áτáÑΓ, τΓ« »α¿ »Ñαó«⌐ á¬Γ¿óᵿ¿
- «¬¡á, ¬παß«α íπñÑΓ πßΓá¡«ó½Ñ¡ ó Ñú« óÑασ¡¿⌐ ½Ñóδ⌐ πú«½. öπ¡¬µ¿∩
- Γá¬ªÑ π»αáó½∩ÑΓ αẼÑΘÑ¡¿Ñ¼ «¬¡á ¡á φ¬αá¡Ñ.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 6 --
-
-
- Ç¬Γ¿ó¿α«óá¡¿Ñ ¿ ñÑá¬Γ¿ó¿α«óá¡¿Ñ «¬¡á.
- -----------------------------------------------------------------
-
- ä½∩ á¬Γ¿ó¿α«óá¡¿∩ «¬¡á ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ window (). çñÑß∞
- num íπñÑΓ ß«ñÑαªáΓ∞ ¡«¼Ñα ßΓαπ¬Γπαδ «¬¡á, ¬«Γ«α«Ñ óδ σ«Γ¿ΓÑ
- ¿ß»«½∞º«óáΓ∞.
-
-
- /* éδóÑßΓ¿ ¡á φ¬αá¡ ß»π߬áεΘÑÑß∩ «¬¡« */
- void window(num)
- int num; /* ¡«¼Ñα «¬¡á */
- {
- int vmode, choice;
- int x, y;
-
- vmode = video_mode();
- if((vmode!=2) && (vmode!=3) && (vmode!=7)) {
- printf("video must be in 80 column text mode");
- exit(1);
- }
- /* πßΓá¡«ó¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿⌐ áñαÑß ó¿ñÑ«»á¼∩Γ¿ */
- if(vmode==7) vid_mem = (char far *) 0xB0000000;
- else vid_mem = (char far *) 0xB0000000;
-
- /* ßñѽáΓ∞ «¬¡« á¬Γ¿ó¡δ¼ */
- if(!frame[num].active) { /* ¿ß»«½∞ºπÑΓß∩ ¡Ñ »«ßΓ«∩¡¡« */
- save_video(num); /* ß«σαá¡¿Γ∞ ΓѬπΘÑÑ ß«ñÑন¼«Ñ φ¬αá¡á */
- frame[num].active = 1; /* πßΓá¡«ó¿Γ∞ Σ½áú á¬Γ¿ó¡«ßΓ¿ */
- }
-
- if(!frame[num].border) draw border(num);
- display_header(num); /* óδóÑßΓ¿ «¬¡« ¡á φ¬αá¡ */
-
- x = frame[num].startx + frame[num].curx + 1;
- y = frame[num].starty + frame[num].cury + 1;
- goto_xy(x,y);
- }
-
-
- èᬠóδ ¼«ªÑΓÑ ó¿ñÑΓ∞, ñá¡¡á∩ Σπ¡¬µ¿∩ «τÑ¡∞ »«σ«ªá ¡á Σπ¡¬µ¿ε
- menu(), »«¬áºá¡¡πε ó »αÑñδñπΘÑ⌐ ú½áóÑ. ÅÑαѼѡ¡á∩ vid-mem
- ∩ó½∩ÑΓß∩ ú½«íá½∞¡δ¼ π¬áºáΓѽѼ Γ¿»á char far.
-
- öπ¡¬µ¿∩ display_header(), »«¬áºá¡¡á∩ ¡¿ªÑ, ¿ß»«½∞ºπÑΓß∩ ñ½∩
- «Γ«íαáªÑ¡¿∩ ó µÑ¡ΓαÑ óÑασ¡Ñ⌐ úαá¡¿µδ «¬¡á Ñú« ºáú«½«ó¬á. àß½¿ ªÑ
- ºáú«½«ó«¬ ¡Ñ »«¼ÑΘáÑΓß∩ ó φΓπ ßΓ᫬π, Γ« «¡ ¡Ñ óδó«ñ¿Γß∩.
-
-
- /* óδóÑßΓ¿ ΓѬßΓ ºáú«½«ó¬á ¡áτ¿¡á∩ ß «»αÑñѽѡ¡«⌐
- »«º¿µ¿¿ */
- void display_header(num)
- int num;
- {
- register int y,len;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 7 --
-
-
-
- y = frame[num].starty;
- /* éδτ¿ß½¿Γ∞ ¡áτá½∞¡πε »«º¿µ¿ε «Γ¡«ß¿Γѽ∞¡« µÑ¡Γαá ΓѬßΓá
- ºáú«½«ó¬á, Ñß½¿ «Γα¿µáΓѽ∞¡á∩, Γ« ΓѬßΓ ¡Ñ »«ñσ«ñ¿Γ */
- len = strlen(frame[num].header);
- len = (frame[num].endy - y - len) / 2;
- if(len<0) return; /* ¡Ñ óδó«ñ¿Γ∞ ¡á φ¬αá¡ */
- y = y +len;
-
- write_string(frame[num].startx, y,
- frame[num].header,NORM_VID);
- }
-
-
- àß½¿ óδ σ«Γ¿ΓÑ, τΓ«íδ ºáú«½«ó«¬ óδó«ñ¿½ß∩ ó ¿¡óÑαß¡«¼
- ¿º«íαáªÑ¡¿¿, Γ« ó¼ÑßΓ« NORî_VID (¿¼ÑεΘѼ º¡áτÑ¡¿Ñ 7) »«ñßΓáó∞ΓÑ
- REV_VID (ß« º¡áτÑ¡¿Ñ¼ 70ì).
-
- ä½∩ ñÑá¬Γ¿óᵿ¿ «¬¡á ¿ß»«½∞ºπÑΓß∩ »«¬áºá¡¡á∩ ¡¿ªÑ Σπ¡¬µ¿∩
- deactivate(), ¬«Γ«α«⌐ »ÑαÑñáÑΓß∩ ¡«¼Ñα πñá½∩Ѽ«ú« «¬¡á.
-
-
- /* äÑá¬Γ¿ó¿α«óáΓ∞ «¬¡« ¿ πñ὿Γ∞ Ñú« ß φ¬αá¡á */
- deactivate(num)
- int num;
- {
- /* πßΓá¡«ó¿Γ∞ ¬παß«α ó ½Ñóδ⌐ óÑασ¡¿⌐ πú«½ */
- frame[num].curx = 0;
- frame[num].cury = 0;
- restore_video(num);
- }
-
-
- èᬠóδ ó¿ñ¿ΓÑ, Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ »«º¿µ¿ε ¬παß«αá ó 0,0.
- Äñ¡á¬«, »«ß¬«½∞¬π óá¼ ¼«úπΓ óßΓαÑΓ¿Γ∞ß∩ ¡Ñ¬«Γ«αδÑ ß¿Γπᵿ¿, ó
- ¬«Γ«αδσ í«½ÑÑ ªÑ½áΓѽ∞¡« ¡Ñ πßΓá¡áó½¿óáΓ∞ ¬παß«α ó ¡π½Ñóπε
- »«º¿µ¿ε, Γ« óδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ »«óÑñÑ¡¿Ñ φΓ«⌐ Σπ¡¬µ¿¿,
- ß««íαáºπ∩ß∞ ß« ßó«¿¼¿ ¡á¼ÑαÑ¡¿∩¼¿.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 8 --
-
-
- Ĭ«¡¡δÑ Σπ¡¬µ¿¿ óó«ñá/óδó«ñá.
- -----------------------------------------------------------------
-
- ÅÑαÑñ ¿ß»«½∞º«ó᡿Ѽ «¬¡á ¡Ñ«íσ«ñ¿¼« αáºαáí«ΓáΓ∞
- º¡áτ¿Γѽ∞¡«Ñ τ¿ß½« ¬«¡ß«½∞¡δσ «¬«¡¡«-«α¿Ñ¡Γ¿α«óá¡¡δσ Σπ¡¬µ¿⌐
- óó«ñá/óδó«ñá. ùΓ«íδ »«¡∩Γ∞, »«τѼπ ΓαÑíπÑΓß∩ Γᬠ¼¡«ú« Σπ¡¬µ¿⌐,
- óß»«¼¡¿ΓÑ « Γ«¼, ߬«½∞¬« ¬«¡ß«½∞¡δσ Σπ¡¬µ¿⌐ óó«ñá/óδó«ñá ó
- ßΓá¡ñáαΓ¡«⌐ í¿í½¿«ΓÑ¬Ñ æ¿. öπ¡¬µ¿¿, »αÑñßΓáó½Ñ¡¡δÑ ó ñá¡¡«⌐
- ú½áóÑ, ó ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿ ß«ßΓáó½∩εΓ ½¿Φ∞ ¼¿¡¿¼á½∞¡δ⌐ ¡áí«α,
- ¡Ñ«íσ«ñ¿¼δ⌐ ñ½∩ ¿ß»«½∞º«óá¡¿∩ «¬«¡. ò«Γ∩ «¡¿ ¡Ñ ó¬½ετáεΓ ó ßÑí∩
- «α¿Ñ¡Γ¿α«óá¡¡δÑ ¡á ¿ß»«½∞º«óá¡¿Ñ «¬«¡ óÑαß¿¿ óßÑσ ¬«¡ß«½∞¡δσ
- æ¿-Σπ¡¬µ¿⌐, ¡« óßÑ ªÑ ¿¼ÑεΓ í«½∞Φ«⌐ «íΩѼ. èᬠóδ πíÑñ¿ΓÑß∞, ñáªÑ
- »α«ßΓÑ⌐Φ¿Ñ «»Ñαᵿ¿, Γá¬¿Ñ ¬á¬ τΓÑ¡¿Ñ ß¿¼ó«½á ß ¬½áó¿áΓπαδ ¿½¿
- óδó«ñ Ñú« ¡á φ¬αá¡, αÑ὿ºπεΓß∩ »α«úαἼἿ í«½∞Φ«ú« «íΩÑѼá,
- »«ß¬«½∞¬π ¡Ñ«íσ«ñ¿¼« «Γ߽Ѫ¿óáΓ∞ ¿ ß«σαá¡∩Γ∞ ΓѬπΘπε »«º¿µ¿ε
- ¬παß«αá ¿ ¡Ñ ñ«»π߬áΓ∞ óδσ«ñá ºá úαá¡¿µδ «¬¡á. Å«¼¡¿ΓÑ, τΓ« ñ½∩
- ¼á¡¿»π½¿α«óá¡¿∩ φ¬αá¡«¼ ¡Ñ½∞º∩ ¿ß»«½∞º«óáΓ∞ ¡¿¬á¬¿σ ßΓá¡ñáαΓ¡δσ
- 󫺼«ª¡«ßΓÑ⌐, »αÑñ«ßΓáó½∩Ѽδσ DOS. ìá»α¿¼Ñα, »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿
- óδ»«½¡¿Γ∞ "ó«ºóαáΓ ¬áαÑΓ¬¿" φΓ« ñ«½ª¡« íδΓ∞ ßñѽᡫ
- ßἫßΓ«∩Γѽ∞¡«, ó¡πΓα¿ Σπ¡¬µ¿¿; ¡Ñ½∞º∩ »α«ßΓ« óδºóáΓ∞ DOS ñ½∩
- óδó«ñá ß««ΓóÑΓßΓóπεΘÑ⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿.
-
- ä½∩ «í½ÑúτÑ¡¿∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ óßÑ «¬«¡¡δÑ Σπ¡¬µ¿¿
- óó«ñá/óδó«ñá ¡áτ¿¡áεΓß∩ ß« ß½«óá window. èα«¼Ñ Γ«ú«, óßÑ φΓ¿
- Σπ¡¬µ¿¿ ó ¬áτÑßΓóÑ ßó«Ñú« »Ñαó«ú« áαúπ¼Ñ¡Γá »α¿¡¿¼áεΓ ¡«¼Ñα «¬¡á,
- ¬ ¬«Γ«α«¼π «ßπΘÑßΓó½∩ÑΓß∩ ñ«ßΓπ».
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 9 --
-
-
- öπ¡¬µ¿∩ »«º¿µ¿«¡¿α«óá¡¿∩ ¬παß«αá ó «¬¡Ñ.
- -----------------------------------------------------------------
-
- 髺¼«ª¡«, ¬«¼π-Γ« φΓ« »«¬áªÑΓß∩ ßΓαá¡¡δ¼, ¡« »Ñαóá∩ Σπ¡¬µ¿∩,
- ó ¬«Γ«α«⌐ 󫺡¿¬áÑΓ »«ΓαÑí¡«ßΓ∞, φΓ« «¬«¡¡δ⌐ φ¬ó¿óá½Ñ¡Γ Σπ¡¬µ¿¿
- goto_xy(). ÄíΩ∩ߡѡ¿Ñ φΓ«¼π «τÑ¡∞ »α«ßΓ«Ñ. ū߬«½∞¬π «¬«¡¡δÑ
- Σπ¡¬µ¿¿ óó«ñá/óδó«ñá ñ«½ª¡δ ßἫßΓ«∩Γѽ∞¡« »«º¿µ¿«¡¿α«óáΓ∞
- ¬παß«α, Γ« ñ«½ªÑ¡ ßπΘÑßΓó«óáΓ∞ ¡Ñ¬«Γ«αδ⌐ ß»«ß«í πßΓá¡«ó¬¿ ¬παß«αá
- ó ¡πª¡πε »«º¿µ¿ε. öπ¡¬µ¿∩ window_xy(), »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ,
- ñѽáÑΓ ¿¼Ñ¡¡« φΓ«. (ä½∩ »αÑñßΓáó½Ñ¡¡δσ ºñÑß∞ »α«úαá¼¼ αáí«Γδ ß
- «¬¡á¼¿ »«º¿µ¿∩ 0,0 ß««ΓóÑΓßΓóπÑΓ ½Ñó«¼π óÑασ¡Ñ¼π πú½π «¬¡á).
-
-
- /* ôßΓá¡«ó¿Γ∞ ¬παß«α ó «»αÑñѽѡ¡πε »«º¿µ¿ε «¬¡á.
- 髺óαáΓ¿Γ∞ 0 »α¿ óδσ«ñÑ ºá úαá¡¿µπ ¿ ¡Ñ ¡«½∞ -
- ó »α«Γ¿ó¡«¼ ß½πτáÑ */
-
- window_xy(num, x, y,)
- int num, x, y;
- {
- if(x<0 || x+frame[num].startx>=frame[num].endx-1)
- return 0;
- if(x<0 || y+frame[num].starty>=frame[num].endy-1)
- return 0;
- frame[num].curx = x;
- frame[num].cury = y;
- goto_xy(frame[num].startx+x+1, frame[num].starty+y+1);
- return 1;
- }
-
-
- è½ετ«¼ ¬ »«¡¿¼á¡¿ε Σπ¡¬µ¿¿ window_xy() ∩ó½∩ÑΓß∩ ¡á»«¼¿¡á¡¿Ñ
- « Γ«¼, τΓ« º¡áτÑ¡¿∩ ¬««αñ¿¡áΓ X,Y ó¡πΓα¿ «¬¡á «ßΓáεΓß∩
- ¡Ñ¿º¼Ñ¡¡δ¼¿, ¡Ñºáó¿ß¿¼« «Γ αáß»«½«ªÑ¡¿∩ «¬¡á ¡á φ¬αá¡Ñ. Æ« ÑßΓ∞
- ¬««αñ¿¡áΓδ X,Y óδτ¿ß½∩εΓß∩ «Γ¡«ß¿Γѽ∞¡« «¬¡á, á ¡Ñ «Γ¡«ß¿Γѽ∞¡«
- φ¬αá¡á. äαπú¿¼¿ ß½«óἿ, Ñß½¿ óδ πßΓá¡«ó¿ΓÑ ¬παß«α ó «¬¡Ñ ó
- »«º¿µ¿ε ß ¬««αñ¿¡áΓἿ 2,2, Γ« «¡ óßÑúñá íπñÑΓ ¡áσ«ñ¿Γ∞ß∩ ó«
- óΓ«α«⌐ ßΓα«¬Ñ ßóÑασπ ¿ óΓ«α«⌐ »«º¿µ¿¿ «Γ¡«ß¿Γѽ∞¡« ½Ñó«ú«
- óÑασ¡Ñú« πú½á «¬¡á, ¡Ñºáó¿ß¿¼« «Γ »«½«ªÑ¡¿∩ «¬¡á ¡á φ¬αá¡Ñ.
-
- öá¬Γ¿τÑ߬¿ Σπ¡¬µ¿∩ window_xy() »α«¿ºó«ñ¿Γ »αÑ«íαẫóá¡¿Ñ
- ¬««αñ¿¡áΓ ¬παß«αá «Γ¡«ß¿Γѽ∞¡« «¬¡á ó αÑá½∞¡δÑ ¬««αñ¿¡áΓδ
- «Γ¡«ß¿Γѽ∞¡« φ¬αá¡á. èα«¼Ñ φΓ«ú«, Σπ¡¬µ¿∩ window_xy() ¡Ñ
- »«ºó«½∩ÑΓ ¬παß«απ óδ⌐Γ¿ ºá »αÑñÑ½δ «¬¡á.
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 10 --
-
-
- öπ¡¬µ¿∩ window_getche()
- -----------------------------------------------------------------
-
- Åα¿ αáí«ΓÑ ß «¬¡á¼¿ óδ ¡Ñ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε
- getche(), ¬«Γ«αá∩ ßτ¿ΓδóáÑΓ óóÑñÑ¡¡δ⌐ ß ¬½áó¿áΓπαδ ß¿¼ó«½ ¿
- «Γ«íαáªáÑΓ Ñú« ¡á φ¬αá¡Ñ, »«ß¬«½∞¬π φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬ óδσ«ñπ
- ºá »αÑñÑ½δ «¬¡á. Å«φΓ«¼π ñ«½ª¡á íδΓ∞ ¿ß»«½∞º«óá¡á á½∞ΓÑα¡áΓ¿ó¡á∩
- «¬«¡¡á∩ Σπ¡¬µ¿∩ window_getche(). ¥Γá Σπ¡¬µ¿∩ ßτ¿ΓδóáÑΓ ß¿¼ó«½,
- ¬«Γ«αδ⌐ óó«ñ¿Γß∩ ó ΓѬπΘπε »«º¿µ¿ε «¬¡á.
-
-
- /* éóÑßΓ¿ ß ¬½áó¿áΓπαδ ß¿¼ó«½ ó «¬¡«. 髺óαáΓ¿Γ∞
- »«½¡δ⌐ 16-αáºα∩ñ¡δ⌐ ߬á¡-¬«ñ. */
- window_getche(num)
- int num;
- {
- union inkey {
- char ch[2];
- int i;
- } c;
-
- if(!frame[num].active) return 0; /* «¬¡« ¡Ñ á¬Γ¿ó¡«Ñ */
-
- window_xy(num, frame[num].curx, frame[num].cury);
-
- c.i = bioskey(0); /* »α¿¡∩Γ∞ ß¿¼ó«½ «Γ ¬½áó¿áΓπαδ */
-
- if(c.ch[0]) {
- switch(c.ch[0]) {
- case '\r': /* ¡áªáΓá ¬½áó¿Φá ENTER */
- break;
- case BKSP; /* ó«ºóαáΓ */
- break;
- default:
- if(frame[num].cury+frame[num].starty < frame[num].endy-1) {
- write_char(frame[num].startx = frame[num].curx=1,
- frame[num].starty+frame[num].cury+1,c.ch[0],NORM_VID);
- frame[num].cury++;
- }
- }
- if(frame[num].curx < 0) frame[num].curx = 0;
- if(frame[num].curx+frame[num].startx > frame[num].endx-2)
- frame[num].curx--;
- window_xy(num, frame[num].curx, frame[num].cury);
- }
- return c.i;
- }
-
- é «Γ½¿τ¿Ñ «Γ Σπ¡¬µ¿¿ getche(), Σπ¡¬µ¿∩ window_getche()
- ó«ºóαáΘáÑΓ »«½¡δ⌐ 16-αáºα∩ñ¡δ⌐ ߬á¡-¬«ñ. ¥Γ« «º¡áτáÑΓ, τΓ« óδ
- ¿¼ÑÑΓÑ ñ«ßΓπ» ¬á¬ ¬ ßΓá¡ñáαΓ¡δ¼ ¬«ñá¼ ß¿¼ó«½«ó ó ¼½áñΦ¿σ ó«ß∞¼¿
- αáºα∩ñáσ, Γᬠ¿ ¬ »«º¿µ¿«¡¡δ¼ ¬«ñá¼ ß¿¼ó«½«ó ó ßΓáαΦ¿σ ó«ß∞¼¿
- αáºα∩ñáσ. àß½¿ óá¼ ¡Ñ ¡πª¡δ »«º¿µ¿«¡¡δÑ ¬«ñδ, Γ« óδ ¼«ªÑΓÑ »α«ßΓ«
- ¡áº¡áτ¿Γ∞ ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐ window_getche() º¡áτÑ¡¿Ñ
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 11 --
-
-
- ß¿¼ó«½∞¡«⌐ »ÑαѼѡ¡«⌐.
-
- öπ¡¬µ¿∩ αáí«ΓáÑΓ ß½ÑñπεΘ¿¼ «íαẫ¼. àß½¿ «¬¡« ¡Ñ ∩ó½∩ÑΓß∩
- á¬Γ¿ó¡δ¼ (Γ.Ñ. Ñú« ¡ÑΓ ¡á φ¬αá¡Ñ), Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ 0.
- ū߬«½∞¬π ¬«ñ 0 ¡Ñ ¼«ªÑΓ ß««ΓóÑΓßΓó«óáΓ∞ ß¿¼ó«½π, óóÑñÑ¡¡«¼π ß
- ¬½áó¿áΓπαδ, Γ« óáΦá »α«úαá¼¼á ß¼«ªÑΓ «í¡áαπª¿Γ∞ φΓπ ß¿Γπᵿε.
- çáΓѼ ¬παß«α πßΓá¡áó½¿óáÑΓß∩ ó ßó«ε ΓѬπΘπε »«º¿µ¿ε ó «¬¡Ñ, ¿
- ßτ¿ΓδóáÑΓß∩ ¬«ñ ¡áªáΓ«⌐ ¬½áó¿Φ¿. àß½¿ φΓ« «íδτ¡á∩ ¬½áó¿Φá, á ¡Ñ
- ¬½áó¿Φá Γ¿»á RETURN ¿½¿ BACKSPASE, ¿¡¬αÑ¼Ñ¡Γ¿απÑΓß∩ ΓѬπΘÑÑ
- º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐ Y, ß««ΓóÑΓßΓóπεΘÑÑ »«½«ªÑ¡¿ε ¬παß«αá, ¿
- ß««ΓóÑΓßΓóπεΘ¿⌐ ß¿¼ó«½ óδó«ñ¿Γß∩ ¡á φ¬αá¡. àß½¿ ¬παß«α ¡áσ«ñ¿Γß∩
- ¡á úαá¡¿µÑ «¬¡á, º¡áτÑ¡¿Ñ Y ñѬαÑ¼Ñ¡Γ¿απÑΓß∩. ū߽Ññ¡ÑÑ «íαáΘÑ¡¿Ñ
- ¬ Σπ¡¬µ¿¿ window_xy() ¿ß»«½∞ºπÑΓß∩ ñ½∩ Γ«ú«, τΓ«íδ »ÑαѼÑßΓ¿Γ∞
- ¬παß«α ó ß½ÑñπεΘπε »«º¿µ¿ε φ¬αá¡á.
-
- öπ¡¬µ¿∩ window_getche ¡Ñ »«ºó«½¿Γ óá¼ óó«ñ¿Γ∞ ß¿¼ó«½δ ºá
- úαá¡¿µÑ⌐ «¬¡á. æ½ÑñπÑΓ »«¼¡¿Γ∞, τΓ« óßÑ «¬¡á ¿¼ÑεΓ úαá¡¿µδ,
- ¬«Γ«αδÑ ¼«úπΓ ¿ ¡Ñ «Γ«íαáªáΓ∞ß∩ ∩ó¡« ó ó¿ñÑ ½¿¡¿⌐. àß½¿ úαá¡¿µá
- ¡Ñ «Γ«íαáªáÑΓß∩, φΓ« º¡áτ¿Γ, τΓ« ñ½∩ φΓ«⌐ µÑ½¿ ¿ß»«½∞ºπÑΓß∩
- ß¿¼ó«½ »α«íѽá. ¥Γ« ¿¼ÑÑΓ ß¼δß½, Ñß½¿ «¬¡« «Γ«íαáªáÑΓß∩ ¡á Σ«¡Ñ
- ¿º«íαáªÑ¡¿∩, ¿¼ÑεΘÑú« ñαπú«⌐ µóÑΓ. äáªÑ Ñß½¿ úαá¡¿µá ¿ ¡Ñ
- «í«º¡áτÑ¡á ∩ó¡«, Γ« ß¿¼ó«½δ óßÑ αáó¡« ¡Ñ ¼«úπΓ «Γ«íαáªáΓ∞ß∩ ºá
- »αÑñѽἿ «¬¡á.
-
- èᬠπΓóÑαªñáÑΓß∩ ó αáºñÑ½Ñ 1, Σπ¡¬µ¿∩ bios_key() c»Ñµ¿Σ¿τ¡á
- ñ½∩ Æπαí« æ¿. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ñαπú«⌐ ¬«¼»¿½∩Γ«α æ¿, Γ« óδ
- ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ óÑαß¿ε Σπ¡¬µ¿¿ bios_key(), »αÑñßΓáó½Ñ¡¡πε ó
- ú½áóÑ 1.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 12 --
-
-
- öπ¡¬µ¿∩ window_gets()
- -----------------------------------------------------------------
-
- ä½∩ τΓÑ¡¿∩ ßΓ᫬¿, óóÑñÑ¡¡«⌐ ó «¬¡«, ¼«ª¡« ¿ß»«½∞º«óáΓ∞
- »αÑñßΓáó½Ñ¡¡πε ¡¿ªÑ Σπ¡¬µ¿ε window_gets(). Ä¡á ¡Ñ Γá¬á∩
- ¿º«ΘαÑ¡¡á∩, ¬á¬ í«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐ gets(), ¡« ¼«ªÑΓ ß½πª¿Γ∞ ñ½∩
- ¼¡«ú¿σ µÑ½Ñ⌐. éδ óßÑúñá ¼«ªÑΓÑ αáßΦ¿α¿Γ∞ ÑÑ Σπ¡¬µ¿«¡á½∞¡δÑ
- 󫺼«ª¡«ßΓ¿, Ñß½¿ »«ªÑ½áÑΓÑ.
-
-
- /* æτ¿ΓáΓ∞ ßΓα«¬π ¿º «¬¡á */
- void window_gets(nums, s)
- int num;
- char *s;
- {
-
- char ch, *temp;
-
- temp = s;
- for(;;) {
- ch = window_getche(num);
- switch(ch) {
- case '\r': /* ¡áªáΓá ¬½áó¿Φá ENTER */
- *s='\0';
- return;
- case BKSP: /* ó«ºóαáΓ */
- if(s>temp) {
- s--;
- frame[num].cury--;
- if(frame[num].cury<0) frame[num].cury = 0;
- window_xy(num, frame[num].curx, frame[num].cury);
- write_char(frame[num].startx+ frame[num].curx+1'
- frame[num].starty+frame[num].cury+1, ' ',NORM_VID);
- }
- break;
- default: *s = ch;
- s++;
- }
- }
- }
-
-
- Åα¿ ¡áªáΓ¿¿ ¬½áó¿Φ¿ éÇæèSPASE, ¡Ñ«íσ«ñ¿¼« óÑα¡πΓ∞ ¬παß«α ¡á
- «ñ¡π »«º¿µ¿ε ó½Ñó«, ßΓÑαÑΓ∞ ºá»¿ßá¡¡δ⌐ Γá¼ ß¿¼ó«½ ¿ ¡á Ñú« ¼ÑßΓ«
- ºá»¿ßáΓ∞ »α«íѽ.
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 13 --
-
-
- öπ¡¬µ¿∩ window_putchar()
- -----------------------------------------------------------------
-
- Åα¿ óδó«ñÑ ß¿¼ó«½á ó «¬¡« ¡Ñ«íσ«ñ¿¼« »α«óÑα∩Γ∞, ∩ó½∩ÑΓß∩ ½¿
- «¬¡« á¬Γ¿ó¡δ¼ ¿ ¡Ñ óδσ«ñ¿Γ ½¿ ß¿¼ó«½ ºá úαá¡¿µπ «¬¡á. ū߽Ñ
- óδó«ñá ß¿¼ó«½á ¬παß«α »α«ñó¿úáÑΓß∩ ¡á «ñ¡π »«º¿µ¿ε. éδ»«½¡∩ÑΓ φΓ¿
- ñÑ⌐ßΓó¿∩ »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ Σπ¡¬µ¿∩ window_putchar().
-
-
- /* éδóÑßΓ¿ ß¿¼ó«½ ó ΓѬπΘπε »«º¿µ¿ε ¬παß«αá ó ß«ºñá¡¡«¼ «¬¡Ñ.
- 髺óαáΓ¿Γ∞ 0, Ñß½¿ «¬¡« ¡Ñ á¬Γ¿ó¡«Ñ, ¿ 1 - ó »α«Γ¿ó¡«¼
- ß½πτáÑ */
- window_putchar(num, ch)
- int num;
- char ch;
- {
- register int x, y;
- char far *v;
-
- /* πíÑñ¿Γ∞ß∩, τΓ« «¬¡« á¬Γ¿ó¡«Ñ */
- if(!frame[num].active) return 0;
-
- x = frame[num].curx = frame[num].startx + 1;
- y = frame[num].cury = frame[num].starty + 1;
-
- v = vid_mem;
- v += (x*160) + y*2; /* óδτ¿ß½∩ÑΓß∩ áñαÑß */
- if(y>=frame[num].endy) {
- return 1;
- }
- if(x>=frame[num].endx) {
- return 1;
- }
-
- if(ch=='\n') { /* ß¿¼ó«½ »ÑαÑσ«ñá ¡á ß½ÑñπεΘπε ßΓ᫬π */
- x++;
- y = frame[num].startx+1;
- v = vid_mem;
- v += (x*160) = y*2; /* óδτ¿ß½¿Γ∞ áñαÑß */
- frame[num].curx++; /* ¡áαáßΓ¿Γ∞ x */
- frame[num].cury = 0; /* ¡áαáßΓ¿Γ∞ y */
- }
- else {
- frame[num].cury++;
- *v++ = ch; /* óδóÑßΓ¿ ß¿¼ó«½ */
- *v++ =NORM_VID; /* ¡«α¼á½∞¡δÑ áΓα¿íπΓδ ß¿¼ó«½á */
- }
- window_xy(num, frame[num].curx, frame[num].cury);
- return 1;
- }
-
- ¥Γá Σπ¡¬µ¿∩ ¡Ñ ºá¡¿¼áÑΓß∩ «í¡áαπªÑ¡¿Ñ¼ «Φ¿í«τ¡¡δσ ß¿Γπᵿ⌐,
- ¬«úñá ß¿¼ó«½ óδσ«ñ¿Γ ºá úαá¡¿µπ «¬¡á. æ¼δß½ φΓ«ú« ß«ßΓ«¿Γ ó Γ«¼,
- τΓ« αẼÑα «¬¡á ¼«ªÑΓ ñ¿¡á¼¿τÑ߬¿ ¿º¼Ñ¡∩Γ∞ß∩ ¿ Γ« ß««íΘÑ¡¿Ñ,
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 14 --
-
-
- ¬«Γ«α«Ñ »«¼ÑΘὫß∞ ó «¬¡« ó ß½ÑñπεΘ¿⌐ ¼«¼Ñ¡Γ óαѼѡ¿ ¼«ªÑΓ ¡Ñ
- »«¼ÑΘáΓ∞ß∩. é φΓ«¼ ß½πτáÑ Σπ¡¬µ¿∩ »α«ßΓ« ¡Ñ «Γ«íαáªáÑΓ ΓÑ
- ß¿¼ó«½δ, ¬«Γ«αδÑ óδσ«ñ∩Γ ºá úαá¡¿µπ «¬¡á.
-
- ÄíαáΓ¿ΓÑ ó¡¿¼á¡¿Ñ, τΓ« ¡áªáΓ¿Ñ ¬½áó¿Φ¿ ó«ºóαáΓá ¬áαÑΓ¬¿
- ΓαÑíπÑΓ »ÑαÑó«ñá ¬παß«αá ¬ ½Ñó«⌐ úαá¡¿µÑ «¬¡á ¿ ¡á «ñ¡π ßΓ᫬π
- 󡿺, Ñß½¿ φΓ« 󫺼«ª¡«.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 15 --
-
-
- öπ¡¬µ¿∩ window_puts
- -----------------------------------------------------------------
-
- öπ¡¬µ¿∩ window_puts óδó«ñ¿Γ ºáñá¡¡πε ßΓ᫬π ó á¬Γ¿ó¡«Ñ «¬¡«,
- ¿ß»«½∞ºπ∩ »α¿ φΓ«¼ Σπ¡¬µε window_putchar().
-
-
- /* éδóÑßΓ¿ ßΓ᫬π, ¡áτ¿¡á∩ ß ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá ó «¬¡Ñ.
- /* 60 */
- 髺óαáΓ¿Γ∞ 0, Ñß½¿ «¬¡« ¡Ñ á¬Γ¿ó¡«Ñ ¿ 1 ó »α«Γ¿ó¡«¼ ß½πτáÑ */
-
- window_puts(num, str)
- int num;
- char *str;
- {
-
- /* πíÑñ¿Γ∞ß∩, τΓ« «¬¡« á¬Γ¿ó¡«Ñ */
- if(!frame[num].active) return 0;
-
- for( ; *str; str++)
- window_putchar(num, *str);
- return 1;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 16 --
-
-
- ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿ π»αáó½Ñ¡¿∩ φ¬αá¡«¼.
- -----------------------------------------------------------------
-
- Åα¿ αáí«ΓÑ ß «¬¡á¼¿ Γá¬ªÑ ¿ß»«½∞ºπεΓß∩ ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿
- π»αáó½Ñ¡¿∩ φ¬αá¡«¼:
-
- öπ¡¬µ¿∩ ìạáτÑ¡¿Ñ
- --------- ------------
- window cls() «τ¿ΘáÑΓ «¬¡«
- window cleol() «τ¿ΘáÑΓ τáßΓ∞ «¬¡á «Γ ΓѬπΘÑ⌐ »«º¿µ¿¿
- ñ« ¬«¡µá ßΓ᫬¿
- window_upline() »ÑαѼÑΘáÑΓ ¬παß«α ¡á «ñ¡π ßΓ᫬π óóÑασ
- window_downline() »ÑαѼÑΘáÑΓ ¬παß«α ¡á «ñ¡π ßΓ᫬π 󡿺
- window_bksp() »ÑαѼÑΘáÑΓ ¬παß«α ¡á «ñ¡π »«º¿µ¿ε ó½Ñó«
-
- ¥Γ¿ Σπ¡¬µ¿¿ »αÑñßΓáó½Ñ¡δ ¡¿ªÑ. æ½Ññπ∩ ¿ß»«½∞ºπÑ¼δ¼ ó ¡¿σ
- «íΘ¿¼ »α¿¡µ¿»á¼, óδ ¼«ªÑΓÑ ß«ºñáΓ∞ ßó«¿ Σπ¡¬µ¿¿ π»αáó½Ñ¡¿∩
- φ¬αá¡«¼.
-
-
- /* Äτ¿ßΓ¿Γ∞ «¬¡« */
- void window_cls(num)
- int num;
- {
-
- register int i,j;
- char far *v, far *t;
-
- v = vid_mem;
- t = v;
- for(i=frame[num].starty+1; i<frame[num].endy; i++)
- for(j=frame[num].startx+1; j<frame[num].endx; j++) {
- v = t;
- v += (j*160) + i*2;
- *v++ = ' '; /* óδóÑßΓ¿ »α«íѽ */
- *v = NORM_VID; /* ¡«α¼á½∞¡δÑ ó¿ñÑ«áΓα¿íπΓδ */
- }
- frame[num].curx = 0;
- frame[num].cury = 0;
- }
-
- /* «τ¿ßΓ¿Γ∞ ñ« ¬«¡µá ßΓ᫬¿ */
- void window_cleol(num)
- int num;
- {
- register int i, x, y;
-
- x = frame[num].curx;
- y = frame[num].cury;
- window_xy(num, frame[num].curx, frame[num].cury);
-
- for(i=frame[num].cury; i<frame[num].endy-1; i++)
- window_putchar(num,' ');
- window_xy(num, x, y);
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 17 --
-
-
- }
-
- /* ÅÑαѼÑßΓ¿Γ∞ ¬παß«α ¡á «ñ¡π ßΓ᫬π óóÑασ. 髺óαáΓ¿Γ∞ ¡Ñ¡π½Ñó«⌐
- ¬«ñ ó ß½πτáÑ πß»Ñσá ¿ 0 - ó »α«Γ¿ó¡«¼ ß½πτáÑ */
- window_upline(num)
- int num;
- {
- if(frame[num].curx>0) {
- frame[num].curx--;
- window_xy(num, frame[num].curx, frame[num].cury);
- return 1;
- }
- return 0;
- }
-
- window_downline(num)
- int num;
- {
- if(frame[num].curx<frame[num].endx-frame[num].startx-1) {
- frame[num].curx++;
- window_xy(num, frame[num].curx, frame[num].cury);
- return 1;
- }
- return 1;
- }
-
- /* ßΓÑαÑΓ∞ »αÑñδñπΘ¿⌐ ß¿¼ó«½ */
- window_bksp(num)
- int num;
- {
- if(frame[num].cury>0) {
- frame[num].cury--;
- window_xy(num, frame[num].curx, frame[num].cury);
- window_putchar(num, ' ');
- frame[num].cury--;
- window_xy(num, frame[num].curx, frame[num].cury);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 18 --
-
-
- 꺼ѡѡ¿Ñ αẼÑαá ¿ »«½«ªÑ¡¿∩ «¬¡á ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ
- -----------------------------------------------------------------
-
- ò«Γ∩ Σπ¡¬µ¿∩ make_window() ¿ ¿ß»«½∞ºπÑΓß∩ ñ½∩ πßΓá¡«ó¬¿
- ¡áτá½∞¡δσ αẼÑα«ó ¿ »«½«ªÑ¡¿∩ «¬¡á ¡á φ¬αá¡Ñ, «ñ¡á¬« φΓ¿
- »áαá¼ÑΓαδ ¼«úπΓ ñ¿¡á¼¿τÑ߬¿ ¿º¼Ñ¡∩Γ∞ß∩ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩
- »α«úαá¼¼δ. 꺼ѡѡ¿Ñ «ñ¡«ú« ¿½¿ í«½ÑÑ »áαá¼ÑΓα«ó «¬¡á
- »α«¿ºó«ñ¿Γß∩ »« ¬«¼á¡ñá¼, »«ßΓπ»áεΘ¿¼ «Γ »«½∞º«óáΓѽ∩. Åα¿ φΓ«¼
- ΓѬπΘÑÑ «¬¡« π¡¿τΓ«ªáÑΓß∩ ¿ ó«ßß«ºñáÑΓß∩ πªÑ ß ¡«ó묨
- »áαá¼ÑΓαἿ. ÅαÑñßΓáó½Ñ¡¡δÑ ¡¿ªÑ »α«úαá¼¼δ size() ¿ move() ¬á¬
- αẠ¿ ¿ß»«½∞ºπεΓß∩ ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ αẼÑα«ó ¿ »«½«ªÑ¡¿∩ «¬¡á. ä½∩
- ¿º¼Ñ¡Ñ¡¿∩ Σ«α¼δ ¿ »«½«ªÑ¡¿∩ «¬¡á ¿ß»«½∞ºπεΓß∩ ¬½áó¿Φ¿ ß«
- ßΓαѽ¬á¼¿, á Γá¬ªÑ ¬½áó¿Φ¿ HOME, END, PGDN ¿ PGUP.
-
- /* ê¡ΓÑαá¬Γ¿ó¡«Ñ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá «¬¡á */
- void size(num)
- int num;
- {
- char ch;
- int x, y, startx, starty;
-
- /* á¬Γ¿ó¿α«óáΓ∞, Ñß½¿ ¡Ñ«íσ«ñ¿¼« */
- if(!frame[num].active) window(num);
- startx = x = frame[num].startx;
- starty = y = frame[num].starty;
- window_xy(num, 0, 0);
-
- do {
- ch = get_special();
- switch(ch) {
- case 75: /* ó½Ñó« */
- starty--;
- break;
- case 77: /* ó»αáó« */
- starty++;
- break;
- case 72: /* óóÑασ */
- startx--;
- break;
- case 80: /* 󡿺 */
- startx++;
- break;
- case 71: /* ó½Ñó« óóÑασ */
- startx--;starty--;
- break;
- case 73: /* ó»αáó« óóÑασ */
- startx--;starty++;
- break;
- case 79: /* ó½Ñó« 󡿺 */
- startx++;starty--;
- break;
- case 81: /* ó»αáó« 󡿺 */
- startx++;starty++;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 19 --
-
-
- break;
- case 60:
- /* F2: «Γ¼Ñ¡¿Γ∞ ¿ óÑα¡πΓ∞ß∩ ¬ ¿ßσ«ñ¡«¼π αẼÑαπ */
- startx = x;
- starty = y;
- ch = 59;
- }
-
- /* ß¼«Γα¿ »α¿ óδσ«ñÑ ºá ñ¿á»áº«¡ */
- if(startx<0) startx++;
- if(startx>=frame[num].endx) startx--;
- if(starty<0) starty++;
- if(starty>=frame[num].endy) starty--;
- deactivate(num); /* ßΓÑαÑΓ∞ «¬¡« ßΓáα«ú« αẼÑαá */
- frame[num].startx = startx;
- frame[num].starty = starty;
- window(num); /* óδóÑßΓ¿ «¬¡« ß ¡«óδ¼ αẼÑα«¼ */
- } while(ch!=59); /* F1 ñ½∩ »«ñΓóÑαªñÑ¡¿∩ ¡«ó«ú« αẼÑαá */
- deactivate(num);
- }
-
-
- /* ê¡ΓÑαá¬Γ¿ó¡«Ñ »ÑαѼÑΘÑ¡¿Ñ «¬¡á */
- void move(num)
- int num;
- {
- char ch;
- int x, y, ex, ey, startx, starty, endx, endy;
-
- /* á¬Γ¿ó¿α«óáΓ∞, Ñß½¿ ¡Ñ«íσ«ñ¿¼« */
- if(!frame[num].active) window(num);
- startx = x = frame[num].startx;
- starty = y = frame[num].starty;
- endx = ex = frame[num].endx;
- endy = ey = frame[num].endy;
- window_xy(num, 0, 0);
-
- do {
- ch = get_special();
- switch(ch) {
- case 75: /* ó½Ñó« */
- starty--;
- endy--;
- break;
- case 77: /* ó»αáó« */
- starty++;
- endy++;
- break;
- case 72: /* óóÑασ */
- startx--;
- endx--;
- break;
- case 80: /* 󡿺 */
- startx++;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 20 --
-
-
- endx++;
- break;
- case 71: /* ó½Ñó« óóÑασ */
- startx--;starty--;
- endx--;endy--;
- break;
- case 73: /* ó»αáó« óóÑασ */
- startx--;starty++;
- endx--;endy++;
- break;
- case 79: /* ó½Ñó« 󡿺 */
- startx++;starty--;
- endx++;endy--;
- break;
- case 81: /* ó»αáó« 󡿺 */
- startx++;starty++;
- endx++;endy++;
- break;
- case 60: /* F2: «Γ¼Ñ¡¿Γ∞ ¿ óÑα¡πΓ∞ß∩ ¬ ¿ßσ«ñ¡«¼π αẼÑαπ */
- startx = x;
- starty = y;
- endx = ex;
- endy = ey;
- ch = 59;
- }
-
- /* ß¼«Γα¿ »α¿ óδσ«ñÑ ºá ñ¿á»áº«¡«¼ */
- if(startx<0) {
- startx++;
- endx++;
- }
- if(endx>=25) {
- startx--;
- endx--;
- }
- if(starty<0) {
- starty++;
- endy++;
- }
- if(endy>=79) {
- starty--;
- endx--;
- }
- /* ßΓÑαÑΓ∞ «¬¡« ó ßΓáα«⌐ »«º¿µ¿¿ */
- deactivate(num);
- frame[num].startx = startx;
- frame[num].starty = starty;
- frame[num].endx = endx;
- frame[num].endy = endy;
- /* óδóÑßΓ¿ «¬¡« ó ¡«óπε »«º¿µ¿ε */
- window(num);
- } while(ch!=59); /* F1 ñ½∩ »«ñ∞óÑαªñÑ¡¿∩ ¿º¼Ñ¡Ñ¡¿∩ */
- deactivate(num);
- }
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 21 --
-
-
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ¬á¬ Σπ¡¬µ¿¿ size(), Γᬠ¿ Σπ¡¬µ¿¿ move()
- »«ß½Ñ ºáóÑαΦÑ¡¿∩ ¿º¼Ñ¡Ñ¡¿∩ »áαá¼ÑΓα«ó «¬¡á ¡áª¼¿ΓÑ ¬½áó¿Φπ F1.
- Ĭ¡« íπñÑΓ ¿¼ÑΓ∞ πßΓá¡«ó½Ñ¡¡δÑ αẼÑαδ ¿ »«½«ªÑ¡¿Ñ »α¿ ¬áªñ«⌐
- »«ß½ÑñπεΘÑ⌐ á¬Γ¿óᵿ¿ ¿ ñ« ΓÑσ »«α, »«¬á óδ ¡Ñ ¿º¼Ñ¡¿ΓÑ ¿σ ß¡«óá.
- ä½∩ »αÑαδóá¡¿∩ óδ»«½¡Ñ¡¿∩ «íÑ¿σ Σπ¡¬µ¿⌐ ¿ß»«½∞ºπÑΓß∩ ¬½áó¿Φá F2,
- »α¿ φΓ«¼ «¬¡« ß«σαá¡∩ÑΓ ßΓáαδÑ º¡áτÑ¡¿∩ αẼÑα«ó ¿ »«½«ªÑ¡¿∩. Åα¿
- ¿ß»«½∞º«óá¡¿¿ φΓ¿σ Σπ¡¬µ¿⌐ ñ«»π߬áÑΓß∩, τΓ«íδ «¬¡á, ó ¼«¼Ñ¡Γ
- ¿º¼Ñ¡Ñ¡¿∩ ¿σ αẼÑα«ó ¿½¿ »«½«ªÑ¡¿∩ ¡Ñ«í∩ºáΓѽ∞¡« í뫨 á¬Γ¿ó¡δ¼¿.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 22 --
-
-
- 櫺ñá¡¿Ñ »α¿¬½áñ¡δσ »α«úαá¼¼, ¿ß»«½∞ºπεΘ¿σ óß»½δóáεΘ¿Ñ «¬¡á
- -----------------------------------------------------------------
-
- Éáí«Γá∩ ß «¬¡á¼¿ «τÑ¡∞ ó᪡« »«¼¡¿Γ∞, τΓ« »α¿ óó«ñÑ-óδó«ñÑ
- ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩ ߻ѵ¿á½∞¡δÑ «¬«¡¡δÑ Σπ¡¬µ¿¿. êß»«½∞º«óá¡¿Ñ
- ñ½∩ φΓ¿σ µÑ½Ñ⌐ ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ æ¿ ταÑóáΓ« ¡Ñ»α¿∩Γ¡«ßΓ∩¼¿,
- »«Γ«¼π τΓ« ß«ºñáÑΓ ó«º¼«ª¡«ßΓ∞ ¡áαπΦÑ¡¿∩ úαá¡¿µδ «¬¡á. Ĭ«¡¡«⌐
- Σπ¡¬µ¿¿, á¡á½«ú¿τ¡«⌐ »« óδ»«½¡∩Ñ¼δ¼ ñÑ⌐ßΓó¿∩¼ Σπ¡¬µ¿¿ prinf(),
- αáºαáí«Γá¡« ¡Ñ í佫, ¿ óδ, 󫺼«ª¡«, ºáσ«Γ¿ΓÑ ß«ºñáΓ∞ ñ½∩ φΓ¿σ
- µÑ½Ñ⌐ ßó«ε ß«íßΓóÑ¡¡πε Σπ¡¬µ¿ε. ì« »α«ßΓÑ⌐Φ¿⌐ ß»«ß«í óδó«ñá ó
- «¬¡« ñá¡¡δσ, Γ¿» ¬«Γ«αδσ «Γ½¿τÑ¡ «Γ ß¿¼ó«½«ó ¿ ßΓ᫬, ºá¬½ετáÑΓß∩
- ó ¿ß»«½∞º«óá¡¿¿ ßΓá¡ñáαΓ¡«⌐ æ¿-Σπ¡¬µ¿¿ sprintf() ñ½∩
- »αÑ«íαẫóá¡¿∩ ½εíδσ Γ¿»«ó ñá¡¡δσ ó ßΓ᫬𠫻αÑñѽѡ¡«ú« Σ«α¼áΓá,
- á ºáΓѼ ó óδó«ñÑ φΓ«⌐ ßΓ᫬¿ ó «¬¡« ß »«¼«Θ∞ε Σπ¡¬µ¿¿ window_puts
- (). ǡὫú¿τ¡δ⌐ ß»«ß«í »«ºó«½∩ÑΓ óó«ñ¿Γ∞ ñá¡¡δÑ, «Γ½¿τ¡δÑ «Γ
- ß¿¼ó«½«ó ¿ ßΓ᫬. Åα¿ φΓ«¼ Σπ¡¬µ¿∩ window_gets() ßτ¿ΓδóáÑΓ
- ñá¡¡δÑ, á »α¿ó«ñ¿Γ ¿σ ¬ ß««ΓóÑΓßΓóπεΘѼπ Γ¿»π ßΓá¡ñáαΓ¡á∩
- æ¿-Σπ¡¬µ¿∩ sscanf(), ¬«Γ«αá∩ óδ»«½¡∩ÑΓ »αÑ«íαẫóá¡¿Ñ »«ßΓπ»áεΘ¿σ
- «Γ ¬½áó¿áΓπαδ ñá¡¡δσ.
-
- 꺫íαáªÑ¡¿Ñ ó «¬¡Ñ «íδτ¡« Σ«α¼¿απÑΓß∩ ñαπú«⌐ τáßΓ∞ε
- »α«úαá¼¼δ, ¡Ñ Γ«⌐, ¬«Γ«αá∩ ß«ñÑαª¿Γ Σπ¡¬µ¿¿ π»αáó½Ñ¡¿∩ «¬¡á¼¿.
- Äíδτ¡« φΓ« ñѽáÑΓß∩ ó Σπ¡¬µ¿¿ main() ¿½¿ ó Σπ¡¬µ¿¿ ¿¡¿µ¿á½¿ºáµ¿¿,
- ¬«Γ«αá∩ óδºδóáÑΓß∩ ó ¡áτá½Ñ »α«úαá¼¼δ. ÅαÑñ½áúáѼ óáΦѼπ 󡿼᡿ε
- Γα¿ »α«ßΓδÑ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ «¬¡á.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 23 --
-
-
- Åα«úαá¼¼á »αÑ«íαẫóá¡¿∩ ¿º ñÑß∩Γ¿τ¡«⌐
- ó ΦÑßΓ¡áñµáΓ¿α¿τ¡πε ß¿ßΓѼπ ßτ¿ß½Ñ¡¿∩.
- -----------------------------------------------------------------
-
- /* äÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡δ⌐ »αÑ«íαẫóáѽ∞ */
- void dectohex()
- {
- char in[80], out[80]
- int n;
-
- window(1);
- do {
- window_xy(1, 0, 0) /* »ÑαÑ⌐Γ¿ ¬ »Ñαó«⌐ ßΓα«¬Ñ */
- window_cleol(1); /* «τ¿ßΓ¿Γ∞ ßΓ᫬π */
-
- window_puts(1, "dec: "); /* »α«¼»ΓÑα */
- window_gets(1, in); /* ßτ¿ΓáΓ∞ τ¿ß½« */
- window_putchar(1, '\n'); /* »ÑαÑ⌐Γ¿ ¬ ß½ÑñπεΘÑ⌐ ßΓα«¬Ñ */
- window_cleol(1); /* «τ¿ßΓ¿Γ∞ ÑÑ */
- sscanf(in,"%d", &n); /* »αÑ«íαẫóáΓ∞ ó« ó¡πΓαÑ¡¿⌐ Σ«α¼áΓ */
- sprintf(out, "%s%X", "hex: ",n); /* »αÑ«íαẫóáΓ∞ ó
- ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ */
- window_puts(1, out); /* óδóÑßΓ¿ ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ τ¿ß½« */
- } while(*in);
- deactivate(1);
- }
-
- öπ¡¬µ¿∩ á¬Γ¿ó¿απÑΓ ßó«Ñ «¬¡«, á ºáΓѼ ó µ¿¬½Ñ »α¿¡¿¼áÑΓ
- ñÑß∩Γ¿τ¡δÑ τ¿ß½á ¿ óδó«ñ¿Γ ¿σ ΦÑßΓ¡áñµáΓ¿α¿τ¡δÑ φ¬ó¿óá½Ñ¡Γδ, ñ«
- ΓÑσ »«α, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ ¡áª¼ÑΓ éó«ñ ó «ΓóÑΓ ¡á ºá»α«ß
- ñÑß∩Γ¿τ¡«ú« τ¿ß½á. ÅÑαÑñ ó«ºóαáΓ«¼ ¿º Σπ¡¬µ¿¿ ÑÑ «¬¡«
- ñÑá¬Γ¿ó¿απÑΓß∩.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 24 --
-
-
- èá½∞¬π½∩Γ«α ß τÑΓδα∞¼∩ Σπ¡¬µ¿∩¼¿.
- -----------------------------------------------------------------
- ÄτÑ¡∞ »«ñσ«ñ∩ΘÑ⌐ ¿ »«»π½∩α¡«⌐ «í½áßΓ∞ε ¿ß»«½∞º«óá¡¿∩
- óß»½δóáεΘ¿σ «¬«¡ ∩ó½∩εΓß∩ »α«úαá¼¼δ ¬á½∞¬π½∩Γ«α«ó. çñÑß∞
- »αÑñßΓáó½Ñ¡á »α«úαá¼¼á ßΓѬ«ó«ú« ¬á½∞¬π½∩Γ«αá. ¥Γ« «º¡áτáÑΓ, τΓ«
- »α¿ αáí«ΓÑ ß ¡¿¼ óδ ñ«½ª¡δ ß¡áτá½á óó«ñ¿Γ∞ «»Ñαá¡ñδ, á ºáΓѼ º¡á¬
- «»Ñαᵿ¿ (Γ.¡. »«ßΓΣ¿¬ß¡á∩ ºá»¿ß∞). Ä»Ñαá¡ñδ »«¼ÑΘáεΓß∩ ó ßΓѬ. é
- ¬áªñδ⌐ ¼«¼Ñ¡Γ óαѼѡ¿ óδ»«½¡∩ÑΓß∩ «»Ñαᵿ∩ ¡áñ ñóπ¼∩ «»Ñαá¡ñἿ.
- Åα¿ φΓ«¼ «»Ñαá¡ñδ ¿ºó½Ñ¬áεΓß∩ ¿º ßΓѬá, αѺπ½∞ΓáΓ «»Ñαᵿ¿
- «Γ«íαáªáÑΓß∩ ¿ »«¼ÑΘáÑΓß∩ ó ßΓѬ. ìá»α¿¼Ñα, ñ½∩ Γ«ú«, óδτ¿ß½¿Γ∞
- αѺπ½∞ΓáΓ óδαáªÑ¡¿∩ (10+5)/5, óδ ß¡áτá½á ñ«½ª¡δ óóÑßΓ¿ 10, ºáΓѼ
- 5, ºáΓѼ º¡á¬ +. ÉѺπ½∞ΓáΓ φΓ«⌐ «»Ñαᵿ¿, τ¿ß½« 15, íπñÑΓ óδóÑñÑ¡
- ¡á ñ¿ß»½Ñ⌐ ¿ »«¼ÑΘÑ¡ ó óÑαΦ¿¡π ßΓѬá. çáΓѼ óδ óó«ñ¿ΓÑ 5 ¿ º¡á¬
- /. ÄΓ«íαáªáÑΓß∩ αѺπ½∞ΓáΓ 3. æΓѬ αáßßτ¿Γá¡ ¡á 100 φ½Ñ¼Ñ¡Γ«ó.
- ¡« óó«ñ¿Γ∞ ¡Ñ߬«½∞¬« «»Ñαá¡ñ«ó »ÑαÑñ º¡á¬«¼ «»Ñαᵿ¿. öπ¡¬µ¿∩
- calc(), á Γá¬ªÑ »«ñ»α«úαá¼¼δ push() ¿ pop() ñ½∩ αáí«Γδ ß« ßΓѬ«¼
- »α¿ó«ñ∩Γß∩ ¡¿ªÑ. ò«Γ∩ φΓá óÑαß¿∩ »α«úαá¼¼δ αáí«ΓáÑΓ Γ«½∞¬« ß
- µÑ½δ¼¿ τ¿ß½á¼¿, óδ ½Ñú¬« ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ ÑÑ Γᬿ¼ «íαẫ¼, τΓ«íδ
- «¡á αáí«Γá½á ß ñÑ⌐ßΓó¿Γѽ∞¡δ¼¿ τ¿ß½á¼¿.
-
- #define MAX 100
- int *p; /* π¬áºáΓѽ∞ ßΓѬá */
- int *tos; /* π¬áºáΓѽ∞ óÑαΦ¿¡δ ßΓѬá */
- int *bos; /* π¬áºáΓѽ∞ ñ¡á ßΓѬá */
-
- /* ßΓѬ«óδ⌐, ß »«ßΓΣ¿¬ß¡«⌐ ºá»¿ß∞ε ¬á½∞¬π½∩Γ«α ß τÑΓδα∞¼∩
- Σπ¡¬µ¿∩¼¿ */
- void calc()
- {
- chra in[80], out[80];
- int answer, stack[MAX];
- int a,b;
-
- p = stack;
- tos = p;
- bos = p+MAX-1;
-
- window(2);
- do {
- window_xy(2, 0,0);
- window_cleol(2);
- window_puts(2, ": "); /* »α«¼»ΓÑα ¬á½∞¬π½∩Γ«αá */
- window_gets(2, in);
- window_puts(2, "\n ");
- window_cleol(2);
- switch(*in) {
- case '+':
- a = pop();
- b = pop();
- answer = a+b;
- push(a+b);
- break;
- case '-':
- a = pop();
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 25 --
-
-
- b = pop();
- answer = b-a;
- push(b-a);
- break;
- case '*':
- a = pop();
- b = pop();
- answer = b*a;
- push(b*a;
- break;
- case '/':
- a = pop();
- b=pop();
- if(a==0) {
- window_putch("divide by 0\n");
- break;
- }
- answer = b/a;
- break;
- default:
- push(atoi(in));
- continue;
- }
- sprintf(out, "%d", answer);
- window_puts(2, out);
- } while(*in);
- deactivate(2);
- }
-
- /* Å«¼ÑßΓ¿Γ∞ τ¿ß½« ó ßΓѬ. 髺óαáΓ¿Γ∞ 1 ó ß½πτáÑ πß»Ñσá ¿
- 0, Ñß½¿ ßΓѬ »ÑαÑ»«½¡Ñ¡ */
- push(i)
- int i;
- {
- if(p>bos) return 0;
-
- *p=i;
- p++;
- return 1;
- }
-
- /* êºó½Ñτ∞ óÑασ¡¿⌐ φ½Ñ¼Ñ¡Γ ¿º ßΓѬá. 髺óαáΓ¿Γ∞ 0, Ñß½¿
- ßΓѬ »ÑαÑ»«½¡Ñ¡ */
-
- pop()
- {
- p--;
- if(p<tos) {
- p++;
- return 0;
- }
- return *p;
- }
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 26 --
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 27 --
-
-
- éß»½δóáεΘá∩ ºá»¿ß¡á∩ ¬¡¿ª¬á
- -----------------------------------------------------------------
-
- äαπú«⌐ «τÑ¡∞ »«ñσ«ñ∩ΘÑ⌐ «í½áßΓ∞ε »α¿¼Ñ¡Ñ¡¿∩ óß»½δóáεΘ¿σ «¬«¡
- ∩ó½∩εΓß∩ »α«úαá¼¼δ Γ¿»á "ºá»¿ß¡á∩ ¬¡¿ª¬á". Åα¿ ¿ß»«½∞º«óá¡¿¿ φΓ¿σ
- »α«úαá¼¼ π óáß ¼«ªÑΓ ó«º¡¿¬¡πΓ∞ »«ΓαÑí¡«ßΓ∞ ó¡ÑßΓ¿ ¡«óπε ºá»¿ß∞.
- éßÑ, τΓ« «Γ óáß »«ΓαÑíπÑΓß∩, φΓ« á¬Γ¿ó¿º¿α«óáΓ∞ »α«úαá¼¼π, ó¡ÑßΓ¿
- ¡«óπε ºá»¿ß∞ ¿ óÑα¡πΓ∞ß∩ ¬ Γ«¼π, τΓ« óδ ñѽ὿ αá¡ÑÑ. 쿪Ñ
- »αÑñßΓáó½Ñ¡ »α¿¼Ñα «τÑ¡∞ »α«ßΓ«⌐ »α«úαá¼¼δ Γ¿»á "ºá»¿ß¡á∩
- ¬¡¿ª¬á".
-
-
- #include "ctype.h"
-
- /* éß»½δóáεΘá∩ ºá»¿ß¡á∩ ¬¡¿ª¬á */
- #define MAX_NOTE 10
- #define BKSP 8
- char notes[MAX NOTE][80];
-
- void notepad()
- {
- static firs=1;
- register int i, j;
- union inkey {
- char ch[2];
- int i;
- } c;
- char ch;
-
- /* ê¡¿µ¿á½¿º¿α«óáΓ∞ ¼áßß¿ó ºá»¿ßÑ⌐, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼« */
- if(frist) {
- for(i=0; i<MAX_note; i++)
- *note[i] = '\0';
- frist = !frist;
- }
-
- window(3);
-
- /* óδóÑßΓ¿ ¡á φ¬αá¡ ßπΘÑßΓóπεΘ¿Ñ ºá»¿ß¿ */
- for(i=0; i<MAX_note; i++) {
- if(*notes[i]) window_puts(3, notes[i]);
- window_putcar(3, '\n');
- }
- i=0;
- window_xy(3, 0, 0);
-
- for(;;) {
- c.i = window_getche(3); /* ßτ¿ΓáΓ∞ ß¿¼ó«½, óóÑñÑ¡¡δ⌐ ß
- ¬½áó¿áΓπαδ */
- if(tolower(c.ch[1])==59 { /* »« F1 - ºáóÑαΦÑ¡¿Ñ */
- deactivate(3);
- break;
- }
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 28 --
-
-
- /* Ñß½¿ «íδτ¡δ⌐ ß¿¼ó«½, Γ« ó¡ÑßΓ¿ Ñú« ó ºá»¿ß∞ */
- if(isprint(c.ch[0]) || c.ch[0]==BKSP) {
- window_cleol(3);
- notes[i][0] = c.ch[0];
- j = 1;
- window_putchar(3, notes[i][0]);
- do {
- ch = window_getche(3);
- if(ch==BKSP) {
- if(j>0) {
- j--;
- window_bksp(3);
- }
- }
- else {
- notes[i][j] = ch;
- j++;
- }
- } while(notes[i][j-1]!='\r');
- notes[i][j-1] = '\0';
- i++;
- window_putchar(3, '\n');
- }
- else { /* φΓ« ߻ѵ¿á½∞¡á∩ ¬½áó¿Φá */
- switch(c.ch[1]) {
- case 72: /* ßΓαѽ¬á óóÑασ */
- if(i>0) {
- i--;
- window_upline(3);
- }
- break;
- case 80: /* ßΓαѽ¬á 󡿺 */
- if(i<MAX_NOTE-1) {
- i++;
- window_dowline(3);
- }
- break;
- }
- }
- }
- }
-
-
- öπ¡¬µ¿∩ notepad() »«ºó«½∩ÑΓ óó«ñ¿Γ∞ ñ« ñÑß∩Γ¿ ßΓ᫬. æ
- »«¼«Θ∞ε ¬½áó¿Φ UP ARROW ¿ DOWN ARROW óδ ¼«ª¿ΓÑ »ÑαѼÑΘáΓ∞ß∩ ¬
- ¡πª¡«⌐ óá¼ ßΓ᫬Ñ. æΓáα«Ñ ß«ñÑন¼«Ñ ßΓ᫬¿, ó ¬«Γ«απε ó¡«ß¿Γß∩
- ¡«óá∩ ºá»¿ß∞, »α¿ φΓ«¼ ßΓ¿αáÑΓß∩. ä½∩ óδσ«ñá ¿º »α«úαá¼¼δ
- "ºá»¿ß¡á∩ ¬¡¿ª¬á" ¿ß»«½∞ºπÑΓß∩ ¬½áó¿Φá F1.
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 29 --
-
-
- æ«ó¼ÑßΓ¡«Ñ ¿ß»«½∞º«óá¡¿Ñ óßÑσ »α«úαá¼¼
- -----------------------------------------------------------------
-
- é φΓ«¼ αáºñÑ½Ñ »α¿ó«ñ¿Γß∩ »α«úαá¼¼á, ó ¬«Γ«α«⌐ ¿ß»«½∞ºπεΓß∩
- óßÑ »α«úαá¼¼δ π»αáó½Ñ¡¿∩ «¬¡á¼¿ ¿ Σπ¡¬µ¿¿ π»αáó½Ñ¡¿∩
- ¿º«íαáªÑ¡¿Ñ¼, »αÑñßΓáó½Ñ¡¡δÑ ó αáºñÑ½Ñ 1, á Γá¬ªÑ Γα¿ »α¿¬½áñ¡δσ
- »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ «¬¡á. Åα«úαá¼¼á ¿¼¿Γ¿απÑΓ αáí«Γπ
- αÑñá¬Γ«αá ¿ »«ºó«½∩ÑΓ óá¼ ß »«¼«Θ∞ε Σπ¡¬µ¿«¡á½∞¡δσ ¬½áó¿Φ
- á¬Γ¿ó¿α«óáΓ∞ «¬¡á αẽ¿τ¡«ú« ¡áº¡áτÑ¡¿∩ ¿½¿ ñѼ«¡ßΓα¿α«óáΓ∞
- αẽ¿τ¡δÑ «ß«íÑ¡¡«ßΓ¿ αáí«Γδ ß «¬¡á¼¿. éδ ¼«ªÑΓÑ ¡Ñ¼Ññ½Ñ¡¡«
- óóÑßΓ¿ φΓπ »α«úαá¼¼π ó óáΦπ ¥éî.
-
-
- /* Å«ñ»α«úαá¼¼á π»αáó½Ñ¡¿∩ «¬¡á¼¿ ¿ »α«ßΓá∩ ñѼ«¡ßΓαᵿ«¡¡á∩
- »α«úαá¼¼á. ê¼¿Γ¿απÑΓß∩ αáí«Γá αÑñá¬Γ«αá. Æα¿ ߻ѵ¿á½∞¡δÑ
- «¬«¡¡δÑ πΓ¿½¿Γδ ¿½½εßΓα¿απεΓ ¼«Θ∞ ¿ «τáα«óá¡¿Ñ »α«úαá¼¼,
- ¿ß»«½∞ºπεΘ¿σ óß»½δóáεΘ¿Ñ «¬¡á. ¥Γ¿¼¿ πΓ¿½¿ΓἿ ∩ó½∩εΓß∩:
- ¬á½∞¬π½∩Γ«α ß 4-¼∩ Σπ¡¬µ¿∩¼¿, ñÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡δ⌐
- »αÑ«íαẫóáΓѽ∞ ¿ óß»½δóáεΘá∩ ºá»¿ß¡á∩ ¬¡¿ª¬á. */
- #include "stdio.h"
- #include "dos.h"
- #include "stdlib.h"
-
- #define BORDER 1
- #define ESC 27
- #define MAC_FRAME 10
- #define REV_VID 0x70
- #define NORM_VID 7
- #define BKSP 8
-
- void save_video(), restore_video(), pd_driver();
- void goto_xy(, cls(), write_string(), write_char();
- void display_header(), draw_border();
- void window_gets(), size(), move(), window_cls();
- void window_cleol(), window();
- void dectohex(), notepad(), calc();
-
- char far *vid_mem;
-
- struct window_frame {
- int startx, endx, starty, endy;
- int curx, cury;
- unsigned char *p;
- char *header;
- iht border;
- int active;
- } frame[MAX_FRAME];
-
-
- main()
- {
- union inkey {
- char ch[2];
- int i;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 30 --
-
-
- } c;
- int i;
- char ch;
-
- cls();
- goto_xy(0,0);
-
- /* »Ñαóδ¼ ñѽ«¼, ß«ºñáΓ∞ αἬ¿ «¬¡á */
- make_window(0, " Editor [Esc to exit] ", 0, 0, 24, 78, BORDER);
- make_window(1, " Decimal to Hex ", 7, 40, 10, 70, BORDER);
- make_window(2, " Calculator ", 8, 20, 12, 60, BORDER);
- make_window(3, " Notepad [F1 to exit] ", 5, 20, 17, 60, BORDER);
-
- /* ¿ß»«½∞º«óáΓ∞ window() ñ½∩ á¬Γ¿óᵿ¿ «»¿ßá¡¡«ú« «¬¡á */
- window(0);
- do {
- c.i = window_getche(0);
- ch = c.i; /* ¿ß»«½∞º«óáΓ∞ Γ«½∞¬« ¼½áñΦ¿⌐ íá⌐Γ */
- if(ch=='\r') /* ñ«½ªÑ¡ óδ»«½¡∩Γ∞ »ÑαÑσ«ñ ¬ ¡áτá½π
- ß½ÑñπεΘÑ⌐ ßΓ᫬¿ */
- window_putchar(0, '\n');
-
- switch(c.ch[1]) { /* ß¼. »α¿ ¿ß»«½∞º«óá¡¿¿ ßΓαѽ«¬ ¿½¿
- Σπ¡¬µ¿«¡á½∞¡δσ ¬½áó¿Φ */
- case 59: /* F1 ñѼ«¡ßΓα¿απÑΓ αáí«Γπ Σπ¡¬µ¿¿ window() */
- window(1);
- for(i=0; i<10; i++)
- if(window_xy(1, i, i)) window_putchar(1,'X');
- getch();
- deactivate(1);
- break;
- case 60: /* F2 ñѼ«¡ßΓα¿απÑΓ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá ¿
- »«½«ªÑ¡¿∩ «¬¡á */
- size(1);
- move(1);
- break;
- case 61: /* F3 óδºδóáÑΓ ¬á½∞¬π½∩Γ«α */
- calc();
- break;
- case 62: /* F4 óδºδóáÑΓ ñÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡δ⌐
- »αÑ«íαẫóáΓѽ∞ */
- dectohex();
- break;
- case 63: /* F5 óδºδóáÑΓ ºá»¿ß¡πε ¬¡¿ª¬π */
- notepad();
- break;
- case 72: /* óóÑασ */
- window_upline(0);
- break;
- case 80: /* 󡿺 */
- window_downline(0);
- break;
-
- }
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 31 --
-
-
- } while (ch!=ESC);
- deactivate(0); /* πñ὿Γ∞ «¬¡« */
- }
-
-
- /***********************************************************/
- /* Ĭ«¡¡δÑ Σπ¡¬µ¿¿ */
- /***********************************************************/
-
- /* éδóÑßΓ¿ ¡á φ¬αá¡ ß»π߬áεΘÑÑß∩ «¬¡« */
- void window(num)
- int num; /* ¡«¼Ñα «¬¡á */
- {
- int vmode, choice;
- int x, y;
-
- vmode = video_mode();
- if((vmode!=2) && (vmode!=3) && (vmode!=7)) {
- printf("video must be in 80 column text mode");
- exit(1);
- }
- /* πßΓá¡«ó¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿⌐ áñαÑß ó¿ñÑ«»á¼∩Γ¿ */
- if(vmode==7) vid_mem = (char far *) 0xb0000000;
- else vid_mem = (char far *) 0xb0000000;
-
- if(!frame[num].active) { /* ¿ß»«½∞ºπÑΓß∩ ¡Ñ»«ßΓ«∩¡¡« */
- save_video(num);/* ß«σαá¡¿Γ∞ ΓѬπΘÑÑ ß«ñÑন¼«Ñ φ¬αá¡á */
- frame[num].active = 1; /* πßΓá¡«ó¿Γ∞ Σ½áú á¬Γ¿ó¡«ßΓ¿ */
- }
-
- if(frame[num].border) draw_border(num);
- dispay_header(num); /* óδóÑßΓ¿ «¬¡« ¡á φ¬αá¡ */
-
- x = frame[num].startx + frame[num].curx + 1;
- y = frame[num].starty + frame[num].cury + 1;
- goto_xy(x, y);
-
- }
-
-
- /* 櫺ñáΓ∞ αἬπ ß»π߬áεΘÑú«ß∩ «¬¡á. 髺óαáΓ¿Γ∞ 1, Ñß½¿ αἬá
- «¬¡á ¼«ªÑΓ íδΓ∞ ß«ºñá¡á ¿ 0 ó »α«Γ¿ó¡«¼ ß½πτáÑ */
-
- make_window(num, header, startx, starty, endx, endy, border)
- int num; /* ¡«¼Ñα «¬¡á */
- char *header; /* ΓѬßΓ ºáú«½«ó¬á */
- int startx, starty; /* ¬««αñ¿¡áΓδ x,y óÑασ¡Ñú« ½Ñó«ú« πú½á */
- int endx, endy; /* ¬««αñ¿¡áΓδ x,y ¡¿ª¡Ñú« »αáó«ú« πú½á */
- int border; /* íѺ í«αñεαá, Ñß½¿ 0 */
- {
- unsigned char *p;
-
- if(num>MAX_FRAME) {
- printf("Too many windows\n");
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 32 --
-
-
- return 0;
- }
-
- if((startx>24) || (startx<0) || (starty>78) || (starty<0)) {
- printf("range error");
- return 0:
- }
-
- if((endx>24) || (endy>79)) {
- printf("window won't fit");
- return 0;
- }
-
- /* «ΓóÑßΓ¿ ñ«ßΓáΓ«τ¡«Ñ ¬«½¿τÑßΓó« »á¼∩Γ¿ */
- p = (unsigned char *) malloc(2*(endx-startx+1)*(endy-starty=1));
- if(!p) exit(1);/* ¿ß»«½∞ºπ⌐ΓÑ óáΦ ß«íßΓóÑ¡¡δ⌐ «íαáí«Γτ¿¬ «Φ¿í«¬*/
-
- /* ß«ºñáΓ∞ αἬπ */
- frame[num].startx = startx; frame[num].endx = endx;
- frame[num].starty = starty; frame[num].endy = endy;
- frame[num].p = p;
- frame[num].header = header;
- frame[num].border = border;
- frame[num].active = 0;
- frame[num].curx = 0; frame[num].cury = 0;
- return 1;
- }
-
- /* αÑñá¬Γ¿α«óáΓ∞ «¬¡« ¿ πñ὿Γ∞ Ñú« ß φ¬αá¡á */
- deactivate(num)
- int num;
- {
-
- /* πßΓá¡«ó¿Γ∞ ¬παß«α ó ½Ñóδ⌐ óÑασ¡¿⌐ πú«½ */
- frame[num].curx = 0;
- frame[num].cury = 0;
- restore_video(num);
- }
-
- /* ê¡ΓÑαá¬Γ¿ó¡«Ñ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑα«ó «¬¡á */
- void size(num)
- int num;
- {
- char ch;
- int x, y, startx, starty;
-
- /* á¬Γ¿ó¿α«óáΓ∞, Ñß½¿ ¡Ñ«íσ«ñ¿¼« */
- if(!frame[num].active) window(num);
-
- startx = x = frame[num].startx;
- starty = y = frame[num].starty;
- window_xy(num, 0, 0);
-
- do {
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 33 --
-
-
- ch = get_special();
- switch(ch) {
- case 75: /* ó½Ñó« */
- starty--;
- break;
- case 77: /* ó»αáó« */
- starty++;
- break;
- case 72: /* óóÑασ */
- startx--;
- break;
- case 80: /* 󡿺 */
- startx++;
- break;
- case 71: /* ó½Ñó« óóÑασ */
- startx--; starty--;
- break;
- case 73: /* ó»αáó« óóÑασ */
- startx--; starty++;
- break;
- case 79: /* ó½Ñó« 󡿺 */
- startx++; starty--;
- break;
- case 81: /* ó»αáó« 󡿺 */
- startx++; starty++;
- break;
- case 60: /* F2: «Γ¼Ñ¡¿Γ∞ ¿ óÑα¡πΓ∞ß∩ ¬ ¿ßσ«ñ¡δ¼
- αẼÑαá¼ */
- startx = x;
- starty = y;
- ch = 59;
- }
-
- if(startx<0) startx++;
- if(startx>=frame[num].endx) startx--;
- if(starty<0) starty++;
- if(starty>=frame[num].endy) starty--;
- deactivate(num);
- frame[num].startx = startx;
- frame[num].starty = starty;
- window(num);
- } while(ch!=59);
- deactivate(num);
- }
-
-
- /* ê¡ΓÑαá¬Γ¿ó¡«Ñ »ÑαѼÑΘÑ¡¿Ñ «¬¡á */
- void move(num)
- int num;
- {
- char ch;
- int x, y, ex, ey, startx, starty, endx, endy;
-
- /* á¬Γ¿ó¿α«óáΓ∞, »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ */
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 34 --
-
-
- if(!frame[num].active) window(num);
-
- startx = x = frame[num].startx;
- starty = y = frame[num].starty;
- endx = ex = frame[num].endx;
- endy = ey = frame[num].endy;
- window_xy(num, 0, 0);
-
- do {
- ch = get_special();
- switch(ch) {
- case 75: /* ó½Ñó« */
- starty--;
- endy--;
- break;
- case 77: /* ó»αáó« */
- starty++;
- endy++;
- break;
- case 72: /* óóÑασ */
- startx--;
- endx--;
- break;
- case 80: /* 󡿺 */
- startx++;
- endx++;
- break;
- case 71: /* ó½Ñó« óóÑασ */
- startx--; starty--;
- endx--; endy--;
- break;
- case 73: /* ó»αáó« óóÑασ */
- startx--; starty++;
- endx--; endy++;
- break;
- case 79: /* ó½Ñó« 󡿺 */
- startx++; starty--;
- endx++; endy--;
- break;
- case 81: /* ó»αáó« 󡿺 */
- startx++; starty++;
- endx++; endy++;
- break;
- case 60: /* F2: «Γ¼Ñ¡¿Γ∞ ¿ óÑα¡πΓ∞ß∩ ¬ ¿ßσ«ñ¡δ¼
- αẼÑαá¼ */
- startx = x;
- starty = y;
- endx = ex;
- endy =ey;
- ch = 59;
- }
-
- /* ß¼. »α¿ óδσ«ñÑ ºá ñ¿á»áº«¡ */
- if(startx<0) {
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 35 --
-
-
- startx++;
- endx++;
- }
- if(endx>=25) {
- startx--;
- endx--;
- }
- if(starty<0) {
- starty++;
- endy++;
- }
- if(endy>=79) {
- starty--;
- endy--;
- }
- deactivate(num);
- frame[num].startx = startx;
- frame[num].starty = starty;
- frame[num].endx = endx;
- frame[num].endy = endy;
- window(num);
- } while(ch!=59);
- deactivate(num);
- }
-
-
- /* éδóÑßΓ¿ ΓѬßΓ ºáú«½«ó¬á, ¡áτ¿¡á∩ ß «»αÑñѽѡ¡«⌐ »«º¿µ¿¿ */
- void display_header(num)
- int num;
- {
- register int y, len;
-
- y = frame[num].starty;
-
- /* éδτ¿ß½¿Γ∞ ¡áτá½∞¡πε »«º¿µ¿ε «Γ¡«ß¿Γѽ∞¡« µÑ¡Γαá ΓѬßΓá
- ºáú«½«ó¬á, Ñß½¿ «Γα¿µáΓѽ∞¡á∩, Γ« ΓѬßΓ ¡Ñ »«ñσ«ñ¿Γ */
- len = strlen(frame[num].header);
- len = (frame[num].endy - y - len) / 2;
- if(len<0) return; /* ¡Ñ óδó«ñ¿Γ∞ ¡á φ¬αá¡ */
- y = y + len;
-
- write_string(frame[num].startx, y,
- frame[num].header, NORM_VID);
- }
-
- void draw_border(num)
- int num;
- {
- register int i;
- char far *v, far *t;
-
- v = vid_mem;
- t = v;
- for(i=frame[num].startx+1; i<frame[num].endx; i++) {
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 36 --
-
-
- v += (i*160) + frame[num].starty*2;
- *v++ = 179;
- *v = NORM_VID;
- v = t;
- v += (i*160) + frame[num].endy*2;
- *v++ = 179;
- *v = NORM_VID;
- v = t;
- }
- for(i=frame[num].starty+1; i<frame[num].endy; i++) {
- v += (frame[num].startx*160) + i*2;
- *v++ = 196;
- *v = NORM_VID;
- v = t;
- v+ =(frame[num].endx*160) + i*2;
- *v++ = 196;
- *v = NORM_VID;
- v = t;
- }
- write_char(frame[num].startx, frame[num].starty, 218, NORM_VID);
- write_char(frame[num].startx, frame[num].endy, 191, NORM_VID);
- write_char(frame[num].endx, frame[num].starty, 192, NORM_VID);
- write_char(frame[num].endx, frame[num].endy, 217, NORM_VID);
-
- }
-
-
- /***************************************************************/
- /* Ĭ«¡¡δÑ Σπ¡¬µ¿¿ óó«ñá/óδó«ñá */
- /***************************************************************/
-
- /* éδóÑßΓ¿ ß¿¼ó«½ ó ΓѬπΘπε »«º¿µ¿ε ¬παß«αá ó ß«ºñá¡¡«¼ «¬¡Ñ.
- 髺óαáΓ¿Γ∞ 0, Ñß½¿ «¬¡« ¡Ñ á¬Γ¿ó¡«Ñ ¿ 1 ó »α«Γ¿ó¡«¼ ß½πτáÑ. */
- window_puts(num, str)
- int num;
- char *str;
- {
-
- /* πíÑñ¿Γ∞ß∩, τΓ« «¬¡« á¬Γ¿ó¡«Ñ */
- if(!frame[num].activite) return 0;
-
- for( ; *str; str++)
- window_putchar(num, *str);
- return 1;
- }
-
- /* éδóÑßΓ¿ ß¿¼ó«½ ó ΓѬπΘπε »«º¿µ¿ε ¬παß«αá ó ß«ºñá¡¡«¼ «¬¡Ñ.
- 髺óαáΓ¿Γ∞ 0, Ñß½¿ «¬¡« ¡Ñ á¬Γ¿ó¡«Ñ ¿ 1 ó »α«Γ¿ó¡«¼ ß½πτáÑ */
- window_putchar(num, ch)
- int num;
- char ch;
- {
- register int x, y;
- char far *v;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 37 --
-
-
-
- /* πíÑñ¿Γ∞ß∩, τΓ« «¬¡« á¬Γ¿ó¡«Ñ */
- if(!frame[num].active) return 0;
-
- x = frame[num].curx + frame[num].startx + 1;
- y = frame[num].cury + frame[num].starty + 1;
-
- v = vid_mem;
- v += (x*160) + y*2; /* óδτ¿ß½¿Γ∞ áñαÑß */
- if(y>=frame[num].endy) {
- return 1;
- }
- if(x>=frame[num].endx) {
- return 1;
- }
- if(ch=='\n') { /* ß¿¼ó«½ »ÑαÑσ«ñá ¡á ß½ÑñπεΘπε ßΓ᫬π */
- x++;
- y = frame[num].startx+1;
- v = vid_mem;
- v += (x*160) + y*2; /* óδτ¿ß½¿Γ∞ áñαÑß */
- frame[num].curx++; /* ¡áαáßΓ¿Γ∞ x */
- frame[num].cury = 0; /* ß»α«ß¿Γ∞ y */
- }
- else {
- frame[num].cury++;
- *v++ = ch; /* óδóÑßΓ¿ ß¿¼ó«½ */
- *v++ = NORM_VID; /* ¡«α¼á½∞¡δÑ ó¿ñÑ«áΓα¿íπΓδ */
- }
- window_xy(num, frame[num].curx, frame[num].cury);
- return 1;
- }
-
-
- /* ôßΓá¡«ó¿Γ∞ ¬παß«α ó «αÑñѽѡ¡«⌐ »«º¿µ¿¿ «¬¡á.
- 髺óαáΓ¿Γ∞ 0 »α¿ óδσ«ñÑ ºá úαá¡¿µπ, ¡Ñ ¡«½∞ ó »α«Γ¿ó¡«¼
- ß½πτáÑ */
- window_xy(num, x, y)
- int num, x, y;
- {
- if(x<0 || x+frame[num].startx>=frame[num].endx-1)
- return 0;
- if(y<0 || y+frame[num].starty>=frame[num].endy-1)
- return 0;
- frame[num].curx = x;
- frame[num].cury = y;
- goto_xy(frame[num].startx+x+1, frame[num].starty+y+1);
- return 1;
- }
-
- /* æτ¿ΓáΓ∞ ßΓα«¬π ¿º «¬¡á */
- void window_gets(num, s)
- int num;
- char *s;
- {
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 38 --
-
-
- char ch, *temp;
-
- temp = s;
- for(,,) {
- ch = window_getche(num);
- switch(ch) {
- case '\r': /* ¡áªáΓá ¬½áó¿Φá ENTER */
- *s='\0';
- return;
- case BKSP: /* ó«ºóαáΓ */
- if(s>temp) {
- s--;
- frame[num].cury--;
- if(frame[num].cury<0) frame[num].cury = 0;
- window_xy(num, frame[num].curx, frame[num].cury);
- write_char(frame[num].startx+ frame[num].curx+1;
- frame[num].starty+frame[num].cury+1, ' ', NORM_VID);
- }
- break;
- default: *s = ch;
- s++;
- }
- }
- }
-
-
-
- /* éóÑßΓ¿ ß¿¼ó«½ ó «¬¡« ß ¬½áó¿áΓπαδ.
- 髺óαáΓ¿Γ∞ »«½¡δ⌐ 16-Γ¿ αáºα∩ñ¡δ⌐ ߬á¡-¬«ñ */
- window_getche(num)
- int num;
- {
- union inkey {
- char ch[2];
- int i;
- } c;
-
- if(!frame[num].active) return 0; /* «¬¡« ¡Ñ á¬Γ¿ó¡«Ñ */
-
- window_xy(num, frame[num].curx, frame[num].cury);
-
- c.i = bioskey(0); /* óóÑßΓ¿ ß¿¼ó«½ ß ¬½áó¿áΓπαδ */
-
- if(c.ch[0]) {
- switch(c.ch[0]) {
- case '\r': /* ¡áªáΓá ¬½áó¿Φá ENTER */
- break;
- case BKSP: /*ó«ºóαáΓ */
- break;
- default:
- if(frame[num].cury+frame[num].starty < frame[num].endy-1) {
- write_char(frame[num].startx+ frame[num].curx+1,
- frame[num].starty+frame[num].cury+1, c.ch[0], NORM_VID);
- frame[num].cury++;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 39 --
-
-
- }
- }
- if(frame[num].curx < 0) frame[num].curx = 0;
- if(frame[num].curx+frame[num].startx > frame[num].endx-2)
- frame[num].curx--;
- window_xy(num, frame[num].curx, frame[num].cury);
- }
- return c.i;
- }
-
- /* Äτ¿ßΓ¿Γ∞ «¬¡« */
- void window_cls(num)
- int num;
- {
- register int i,j;
- char far *v, far *t;
-
- v = vid_mem;
- t = v;
- for(i=frame[num].starty+1; i<frame[num].endy; i++)
- for(j=frame[num].startx+1; j<frame[num].endy; j++) {
- v = t;
- v += (j*160) + i*2;
- *v++ = ' '; /* óδóÑßΓ¿ »α«íѽ */
- *v = NORM_VID; /* ¡«α¼á½∞¡δÑ ó¿ñÑ«áΓα¿íπΓδ */
- }
- frame[num].curx = 0;
- frame[num].cury = 0;
- }
-
- /* Äτ¿ßΓ¿Γ∞ ñ« ¬«¡µá ßΓ᫬¿ */
- void window_cleol(num)
- int (num);
- {
- register int i, x, y;
-
- x = frame[num].curx;
- y = frame[num].cury;
- window_xy(num, frame[num].curx, frame[num].cury);
-
- for(i=frame[num].cury; i<frame[num].endy-1; i++)
- window_putchar(num,' ');
- window_xy(num, x, y);
- }
-
-
- /* ÅÑαѼÑßΓ¿Γ∞ ¬παß«α ¡á «ñ¡π ßΓ᫬π óóÑασ.
- 髺óαáΓ¿Γ∞ ¡Ñ¡π½Ñó«⌐ ¬«ñ ó ß½πτáÑ πß»Ñσá, 0 - ó »αΓ¿ó¡«¼
- ß½πτáÑ. */
- window_upline(num)
- int num;
- {
- if(frame[num].curx>0) {
- frame[num].curx--;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 40 --
-
-
- window_xy(num, frame[num].curx, frame[num].cury);
- return 1;
- }
- return 0;
- }
-
-
- /* ÅÑαѼÑßΓ¿Γ∞ ¬παß«α ¡á «ñ¡π ßΓ᫬π 󡿺.
- 髺óαáΓ¿Γ∞ ¡Ñ¡π½Ñó«⌐ ¬«ñ ó ß½πτáÑ πß»Ñσá, 0 - ó »α«Γ¿ó¡«¼
- ß½πτáÑ. */
-
- window_dowline(num)
- int num,
- {
- if(frame[num].curx<frame[num].endx-frame[num].startx-1) {
- frame[num].curx++;
- window_xy(num, frame[num].curx, frame[num].cury);
- return 1;
- }
- return 1;
-
- /* ßΓÑαÑΓ∞ »αÑñδñπΘ¿⌐ ß¿¼ó«½
- window_bksp(num)
- int (num);
- {
- if(frame[num].cury>0) {
- frame[num].cury--;
- window_xy(num, frame[num].curx, frame[num].cury);
- window_putchar(num, ' ');
- frame[num].cury--;
- window_xy(num, frame[num].curx, frame[num].cury);
- }
- }
-
-
- /***************************************************************/
- /* ä«»«½¡¿Γѽ∞¡δÑ Σπ¡¬µ¿¿ */
- /***************************************************************/
-
- /* éδóÑßΓ¿ ¡á φ¬αá¡ ßΓ᫬π ß ñ«»«½¡¿Γѽ∞¡δ¼¿ áΓα¿íπΓἿ */
- void write_strihg(x, y, attrib)
- int x, y;
- char *p;
- int attrib;
- {
- register int i;
- char far *v;
-
- v = vid_mem;
- v += (x*160) + y*2; /* óδτ¿ß½¿Γ∞ áñαÑß */
- for(i=y; i++) {
- *v++ = *p++; /* óδóÑßΓ¿ ß¿¼ó«½ */
- *v++ = attrib; /* óδóÑßΓ¿ áΓα¿íπΓδ */
- }
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 41 --
-
-
- }
-
- /* éδóÑßΓ¿ ß¿¼ó«½δ ß «»αÑñѽѡ¡δ¼¿ áΓα¿íπΓἿ */
- void write_char(x, y, ch, attrib)
- int x, y;
- char ch;
- int attrib;
- {
- register int i;
- char far *v;
-
- v = vid_mem;
- v += (x*160) + y*2;
- *v++ = ch; /* óδóÑßΓ¿ ß¿¼ó«½ */
- *v = attrib; /* óδóÑßΓ¿ áΓα¿íπΓδ */
- }
-
- /* æ«σαá¡¿Γ∞ ß«ñÑন¼«Ñ τáßΓ¿ φ¬αá¡á */
- void save_video(num)
- int num;
- {
- register int i, j;
- char *buf_ptr;
- char far *v, far *t;
-
- buf_ptr = frame[num].p;
- v = vid_mem;
- for(i=frame[num].starty; i<frame[num].endy+1; i++)
- for(j=frame[num].startx; j<frame[num].endx+1; j++) {
- t = (v + (j*160) + i*2);
- *buf_ptr++ = *t++;
- *buf_ptr++ = *t;
- *(t-1) = ' '; /* «τ¿ßΓ¿Γ∞ «¬¡« */
- }
- }
-
-
- /* é«ßßΓá¡«ó¿Γ∞ ß«ñÑন¼«Ñ τáßΓ¿ φ¬αá¡á */
- void restore_video(num)
- int num;
- {
- register int i,j;
- char far *v, far *t;
- char *buf_ptr;
-
- buf_ptr = frame[num].p;
- v = vid_mem;
- t = v;
- for(i=frame[num].starty; i<frame[num].endy+1; i++)
- for(j=frame[num].startx; i<frame[num].endx+1; j++) {
- v = t;
- v += (j*160) + i*2;
- *v++ = buf_ptr++; /* óδóÑßΓ¿ ß¿¼ó«½ */
- *v = *buf_ptr++; /* óδóÑßΓ¿ áΓα¿íπΓδ */
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 42 --
-
-
- }
- frame[num].active = 0;
- }
-
-
- /* Äτ¿ßΓ¿Γ∞ φ¬αá¡ */
- void cls()
- {
- union REGS r;
- r.h.ah=6; /* ¬«ñ »α«¬απΓ¬¿ φ¬αá¡á */
- r.h.al=0; /* ¬«ñ «τ¿ßΓ¬¿ φ¬αá¡á */
- r.h.ch=0; /* ¡áτá½∞¡δ⌐ α∩ñ */
- r.h.cl=0; /* ¡áτá½∞¡δ⌐ ßΓ«½íѵ */
- r.h.dh=24; /* ¬«¡Ñτ¡δ⌐ α∩ñ */
- r.h.dl=79; /* ¬«¡Ñτ¡δ⌐ ßΓ«½íѵ */
- r.h.bh=7; /* »πßΓá∩ ßΓ᫬á - τÑα¡á∩ */
- int86(0x10, &r, &r);
- }
-
- /* ôßΓá¡«ó¿Γ∞ ¬παß«α ó »«º¿µ¿ε ß ¬««αñ¿¡áΓἿ x, y */
- void goto_xy(x,y)
- int x,y;
- {
- union REGS r;
-
- r.h.ah=2; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
- r.h.dl=y; /* ¬««αñ¿¡áΓδ ßΓ«½íµá */
- r.h.dh=x; /* ¬««αñ¿¡áΓδ α∩ñá */
- r.h.bh=0; /* ßΓαá¡¿µá ó¿ñÑ«»á¼∩Γ¿ */
- int86(0x10, &r, &r);
- }
-
- /* 髺óαáΓ¿Γ∞ »«º¿µ¿«¡¡δ⌐ ¬«ñ ßΓαѽ¬¿ ¿ Σπ¡¬µ¿«¡á½∞¡δσ ¬½áó¿Φ */
- get_special()
- {
- union inkey {
- char ch[2];
- int i;
- } c;
-
- /* while(!bioskey(1)) ; /* ªñáΓ∞ ¡áªáΓ¿∩ ¬½áó¿Φ¿ */
- c.i = bioskey(0); /* ßτ¿ΓáΓ∞ ¬«ñ ¡áªáΓ«⌐ ¬½áó¿Φ¿ */
-
- return c.ch[1];
- }
-
- /* 髺óαáΓ¿Γ∞ ¬«ñ ΓѬπΘÑú« ó¿ñÑ«αѪ¿¼á */
- video_mode()
- {
- union REGS r;
-
- r.h.ah = 15; /* »«½πτ¿Γ∞ ¬«ñ ó¿ñÑ«αѪ¿¼á */
- return int86(0x10, &r, &r) & 255;
- }
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 43 --
-
-
-
- is_in(s, c)
- char *s, c;
- {
- register int i;
-
- for(i=0; *s; i++) if(*s++==c) return i+1;
- return 0;
- }
-
-
- #include "ctype.h"
- /***************************************************************/
- /* öπ¡¬µ¿¿ π»αáó½Ñ¡¿∩ óß»½δóáεΘ¿¼¿ «¬¡á¼¿ */
- /***************************************************************/
-
- #define MAX 100
-
- int *p; /* π¬áºáΓѽ∞ ßΓѬá */
- int *tos; /* π¬áºáΓѽ∞ óÑαΦ¿¡δ ßΓѬá */
- int *bos; /* π¬áºáΓѽ∞ ñ¡á ßΓѬá */
-
-
- /* æΓѬ«óδ⌐, ß »«ßΓΣ¿¬ß¡«⌐ ºá»¿ß∞ε ¬á½∞¬π½∩Γ«α ß 4-¼∩ Σπ¡¬µ¿∩¼¿*/
- void calc()
- {
- char in[80], out[80];
- int answer, stack[MAX];
- int a,b;
-
- p = stack;
- tos = p;
- bos = P+MAX-1;
-
- window(2);
- do {
- window_xy(2, 0, 0);
- window_cleol(2);
- window_puts(2, ": "); /* »α«¼ΓÑα ¬á½∞¬π½∩Γ«αá */
- window_gets(2, in);
- window_puts(2, "\n");
- window_cleol(2);
- switch(*in) {
- case '+':
- a = pop();
- b = pop();
- answer = a+b;
- push(a+b);
- break;
- case '-':
- a = pop();
- b = pop();
- answer = b-a;
- push(b-a);
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 44 --
-
-
- break;
- case '*':
- a = pop();
- b = pop();
- answer = b*a;
- push(b*a);
- break;
- case '/':
- a = pop();
- b=pop();
- if(a==0) {
- window_puts("divide by 0\n");
- break;
- }
- ansver = b/a;
- push(b/a);
- break;
- default:
- push(atoi(in));
- continue;
- }
- sprintf(out, "%d", answer);
- window_puts(2, out);
- } wile(*in);
- deactivate(2);
- }
-
-
- /* Å«¼ÑßΓ¿Γ∞ τ¿ß½« ó ßΓѬ.
- 髺óαáΓ¿Γ∞ 1 ó ß½πτáÑ πß»Ñσá ¿ 0 ó »α«Γ¿ó¡«¼ ß½πτáÑ */
- push(i)
- int i;
- {
- if(p>bos) return 0;
-
- *p=i;
- p++;
- return 1;
- }
-
-
- /* êºó½Ñτ∞ óÑασ¡¿⌐ φ½Ñ¼Ñ¡Γ ¿º ßΓѬá.
- 髺óαáΓ¿Γ∞ 0 Ñß½¿ ßΓѬ »πßΓ */
- pop()
- {
- p--;
- if(p<tos) {
- p++;
- return 0;
- }
- return *p;
- }
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 45 --
-
-
-
- /* äÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡δ⌐ »αÑ«íαẫóáΓѽ∞ */
- void dectohex()
- {
- char in[80], out[80];
- int n;
-
- window(1);
- do {
- window_xy(1, 0, 0); /* »ÑαÑ⌐Γ¿ ¬ »Ñαó«⌐ ßΓα«¬Ñ */
- window_cleol(1); /* «τ¿ßΓ¿Γ∞ ßΓ᫬π */
- window_puts(1, "dec: "); /* »α«¼ΓÑα */
- window_gets(1, in); /* ßτ¿ΓáΓ∞ τ¿ß½« */
- window_putchar(1, '\n'); /* »ÑαÑ⌐Γ¿ ¬ ß½ÑñπεΘÑ⌐ ßΓα«¬Ñ */
- window_cleol(1); /* «τ¿ßΓ¿Γ∞ ÑÑ */
- sscanf(in,"%d", &n); /* »αÑ«íαẫóáΓ∞ ó« ó¡πΓαÑ¡¡¿⌐ Σ«α¼áΓ*/
- sprintf(out, "%s%X", "hex: ",n); /* »αÑ«íαẫóáΓ∞ ó
- ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ »αÑñßΓáó½Ñ¡¿Ñ */
- window_puts(1, out); /* óδóÑßΓ¿ ΦÑßΓ¡áñµáΓ¿α¿τ¡«Ñ τ¿ß½« */
- } wile(*in);
- deactivate(1);
- }
-
-
- /* éß»½δóáεΘá∩ ºá»¿ß¡á∩ ¬¡¿ª¬á */
- #define MAX_NOTE 10
- #define BKSP 8
- char notes[MAX_NOTE][80];
-
- void notepad()
- {
- static first=1;
- register int i; j;
- union inkey {
- char ch[2];
- int i;
- } c;
- char ch;
-
- /* ¿¡¿µ¿á½¿º¿α«óáΓ∞ ¼áßß¿ó ºá»¿ßÑ⌐, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼« */
- if(frist) {
- for(i=0; i<MAX_NOTE; i++)
- *notes[i] = '\0';
- first = !first;
- }
-
- window(3);
- /* óδóÑßΓ¿ ¡á φ¬αá¡ ßπΘÑßΓóπεΘ¿Ñ ºá»¿ß¿ */
- for(i=0; i<MAX_NOTE; i++) {
- if(*notes[i]) window_puts(3, notes[i]);
- window_putchar(3, '\n');
- }
-
- i=0;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 46 --
-
-
- window_xy(3, 0, 0);
-
- for(;;) {
- c.i = bioskey(o); /* ßτ¿ΓáΓ∞ ¬«ñ ¬½áó¿Φ¿ */
- if(tolower(c.ch[1])==59) { /* F1 - ñ½∩ óσ«ñá */
- deactivate(3);
- break;
- }
-
- /* Ñß½¿ «íδτ¡á∩ ¬½áó¿Φá */
- if(isprint(c.ch[0]) || c.ch[0]==BKSP) {
- window_cleol(3);
- notes[i][0] = c.ch[0];
- j = 1;
- window_putchar(3, notes[i][0]);
- do {
- ch = window_getche(3);
- if(ch==BKSP) {
- if(j>0) {
- j--;
- window_bksp(3);
- }
- }
- else {
- notes[1][j] = ch;
- j++;
- }
- } while(notes[i][j-1]!='\r');
- notes[i][j-1] = '\0';
- i++;
- window_putchar(3, '\n');
- }
- else { /* Ñß½¿ ߻ѵ¿á½∞¡á∩ ¬½áó¿Φá */
- switch(c.ch[1]) {
- case 72: /* ßΓαѽ¬á óóÑασ */
- if(i>0) {
- i--;
- window_upline(3);
- }break
- case 80: /* ßΓαѽ¬á 󡿺 */
- if(i<MAX_NOTE-1) {
- i++;
- window_dowline(3);
- }
- break;
- }
- }
- }
- }
-
-
- Å∩Γ∞ »Ñαóδσ Σπ¡¬µ¿«¡á½∞¡δσ ¬½áó¿Φ óδ»«½¡∩εΓ ß½ÑñπεΘ¿Ñ
- ñÑ⌐ßΓó¿∩:
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 47 --
-
-
- F1 - ñѼ«¡ßΓα¿απÑΓ αáí«Γπ Σπ¡¬µ¿¿ window_xy()
- F2 - ñѼ«¡ßΓα¿απÑΓ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá ¿ »«½«ªÑ¡¿∩ «¬¡á
- F3 - óδºδóáÑΓ ¬á½∞¬π½∩Γ«α
- F4 - óδºδóáÑΓ »α«úαá¼¼π ñÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡«ú«
- »αÑ«íαẫóá¡¿∩
- F5 - óδºδóáÑΓ "ºá»¿ß¡πε ¬¡¿ª¬π".
-
- É¿ßπ¡¬¿ 2-1, 2-2 ¿ 2-3 ¿½½εßΓα¿απεΓ »«∩ó½Ñ¡¿Ñ ¡á φ¬αá¡Ñ
- ß««ΓóÑΓßΓóπεΘ¿σ ¼Ñ¡ε. É¿ß. 2-4 ¿½½εßΓα¿απÑΓ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑα«ó ¿
- »«½«ªÑ¡¿∩ «¬¡á »α«úαá¼¼δ ñÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡«ú«
- »αÑ«íαẫóá¡¿∩.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 48 --
-
-
- î«ñ¿Σ¿¬áµ¿¿ »α«úαá¼¼ π»αáó½Ñ¡¿∩ «¬¡á¼¿
- -----------------------------------------------------------------
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ »αÑñßΓáó½Ñ¡¡δσ ó ñá¡¡«¼ αáºñÑ½Ñ »α«úαá¼¼
- π»αáó½Ñ¡¿∩ «¬¡á¼¿ óδ óßÑúñá ñ«½ª¡δ Γ«τ¡« «»αÑñѽ∩Γ∞ «¬¡«, ß
- ¬«Γ«αδ¼ ß«í¿αáÑΓÑß∞ αáí«ΓáΓ∞. ¥Γ«Γ ß»«ß«í »α¿ ¿ß»«½∞º«óá¡¿¿
- »α«úαá¼¼ «íÑß»Ñτ¿óáÑΓ í«½∞Φπε ú¿í¬«ßΓ∞. äαπú«⌐ ß»«ß«í π»αáó½Ñ¡¿∩
- «¬¡á¼¿ «ß¡«óá¡ ¡á »α¿¼Ñ¡Ñ¡¿¿ ßΓѬá.
-
-
- ┌─────────────────── Editor [Esc to exit] ────────────────────┐
- │ │
- │ To whom it may concern: │
- │ │
- │ This is to inform you D. W. Porkbellies will no lohger │
- │ be providing its customers with the following products: │
- │ │
- │ │
- │ │
- │ ┌──────────── Calculator ──────────────┐ │
- │ │ │ │
- │ │ : │ │
- │ │ │ │
- │ │ │ │
- │ │ │ │
- │ │ │ │
- │ └──────────────────────────────────────┘ │
- └─────────────────────────────────────────────────────────────┘
-
- É¿ß. 2-1 Ĭ¡« ¬á½∞¬π½∩Γ«αá.
-
- ┌──────────────────── Editor [Esc to exit] ──────────────────┐
- │ │
- │ To whom it may concern: │
- │ │
- │ This is to inform you D. W. Porkbellies will no lohger │
- │ be providing its customers with the following products: │
- │ │
- │ │
- │ ┌──────── Decimal to Hex ───┐ │
- │ │ │ │
- │ │ dec: 12 │ │
- │ . meat and oats fak│ hex: C │ │
- │ │ │ │
- │ . lime cola drink p└───────────────────────────┘ │
- │ │
- │ . syrup coated sizzle links │
- │ │
- │ │
- └────────────────────────────────────────────────────────────┘
-
- É¿ß. 2-2 Ĭ¡« ñÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡«ú« »αÑ«íαẫóáΓѽ∩.
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 49 --
-
-
- ┌─────────────────── Editor [Esc to exit] ──────────────────┐
- │ │
- │ To whom it may concern: │
- │ │
- │ This is to inform you D. W. Porkbellies will no lohger │
- │ be providi┌───────── Notepad [F1 to exit] ─────────┐ │
- │ │ │ │
- │ │ call Sherry │ │
- │ │ go to the store │ │
- │ │ │ │
- │ │ │ │
- │ │ │ │
- │ │ │ │
- │ └────────────────────────────────────────┘ │
- │ │
- └───────────────────────────────────────────────────────────┘
-
- É¿ß. 2-3 Ĭ¡« ºá»¿ß¡«⌐ ¬¡¿ª¬¿.
-
-
-
-
- ┌─────────────────── Editor [Esc to exit] ─────────────────┐
- │ │
- │ To whom it may concern: │
- │ │
- │ This is to inform you D. W. Porkbellies will no lohger │
- │ be providing its customers with the following products: │
- │ │
- │ . meat and oats fake burgers │
- │ │
- │ . lime cola drink pops │
- │ │
- │ │
- │ ┌───── Decimal to Hex ────────┐ le links │
- │ │ │ │
- │ │ │ │
- │ │ │ │
- │ └─────────────────────────────┘ │
- └──────────────────────────────────────────────────────────┘
-
-
-
- É¿ß. 2-4 꺼ѡѡ¿Ñ αẼÑα«ó ¿ »«½«ªÑ¡¿∩ «¬¡á
- ñÑß∩Γ¿τ¡«-ΦÑßΓ¡áñµáΓ¿α¿τ¡«ú« »αÑ«íαẫóáΓѽ∩.
-
- é φΓ«¼ ß½πτáÑ «¬«¡¡δÑ »α«úαá¼¼δ óó«ñá-óδó«ñá ¡Ñ »«½πτáεΓ
- ¡«¼Ñα «¬¡á ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá. é¼ÑßΓ« φΓ«ú« ¡«¼Ñαá «¬«¡
- »«¼ÑΘáεΓß∩ ó ßΓѬ ó Γ«¼ »«α∩ñ¬Ñ, ó ¬«Γ«α«¼ «¡¿ í뫨 á¬Γ¿ó¿α«óá¡δ.
- Ĭ«¡¡δÑ »α«úαá¼¼δ óßÑúñá αáí«ΓáεΓ ß ΓѼ «¬¡«¼, ¡«¼Ñα ¬«Γ«α«ú«
- ¡áσ«ñ¿Γß∩ ó óÑαΦ¿¡Ñ ßΓѬá. Åα¿ ñÑá¬Γ¿óᵿ¿ «¬¡á Ñú« ¡«¼Ñα
- ¿ºó½Ñ¬áÑΓß∩ ¿º ßΓѬá. ÅαÑ¿¼πΘÑßΓó« φΓ«ú« ß»«ß«íá ºá¬½ετáÑΓß∩ ó
- Γ«¼, τΓ« óδ ¡Ñ ñ«½ª¡δ ó φΓ«¼ ß½πτáÑ ñπ¼áΓ∞ « ¡«¼Ñαáσ «¬«¡. éδ
- ¼«ªÑΓÑ ¼«ñ¿Σ¿µ¿α«óáΓ∞ »α«úαá¼¼δ π»αáó½Ñ¡¿∩ «¬¡á¼¿, τΓ«íδ «¡¿
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá II -- 50 --
-
-
- αáí«Γ὿ ¿¼Ñ¡¡« φΓ¿¼ ß»«ß«í«¼.
-
- äαπúá∩ ¼«ñ¿Σ¿¬áµ¿∩ ¼«ªÑΓ ºá¬½ετáΓ∞ß∩ ó Γ«¼, τΓ«íδ
- «íÑß»Ñτ¿óáΓ∞ »α«¬απì𠫬¡á, ¬«úñá ¬παß«α ñ«ßΓ¿úáÑΓ Ñú« ¡¿ª¡Ñ⌐
- úαá¡¿µδ. é ßπΘÑßΓóπεΘѼ óáα¿á¡ΓÑ, Ñß½¿ ¬παß«α ñ«ßΓ¿ú ¡¿ª¡Ñ⌐
- úαá¡¿µδ, Γ« »«ß½Ñ ¡áªáΓ¿∩ ¬½áó¿Φ¿ éó«ñ ¡¿τÑú« ¡Ñ »α«¿ßσ«ñ¿Γ. éδ
- «ñ¡á¬« ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞ »α«úαá¼¼δ Γᬿ¼ «íαẫ¼, τΓ«íδ óÑασ¡∩∩
- ßΓα«¬á »α«»áñá½á, á ó¡¿ºπ »«∩ó½∩½áß∞ ¡«óá∩ »πßΓá∩ ßΓ᫬á.
-
- ìᬫ¡Ñµ, ΓÑ τ¿ΓáΓѽ¿, ¬«Γ«αδÑ ¿¼ÑεΓ µóÑΓ¡δÑ ñ¿ß»½Ñ¿, ¼«úπΓ
- ¿ß»«½∞º«óáΓ∞ αẽ¿τ¡δÑ µóÑΓá ñ½∩ «í«º¡áτÑ¡¿∩ úαá¡¿µ αẽ¿τ¡δσ
- «¬«¡. Åα¿ »αáó¿½∞¡«¼ »α¿¼Ñ¡Ñ¡¿¿ φΓ« ñ«íáó¿Γ »α¿ó½Ñ¬áΓѽ∞¡«ßΓ¿
- óáΦ¿¼ »α«úαá¼¼á¼.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó