home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-10-26 | 81.2 KB | 2,015 lines |
- ä½∩ Γ«ú«, τΓ«íδ »«¡∩Γ∞, ¬á¬ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ «¬¡á,
- ¡Ñ«íσ«ñ¿¼« º¡áΓ∞, ¬á¬¿Ñ ñÑ⌐ßΓó¿∩ ß «¬¡á¼¿ ¼«ª¡« óδ»«½¡∩Γ∞.
- Å«¼¡¿ΓÑ, τΓ« «¬¡«¼ ∩ó½∩ÑΓß∩ »α∩¼«πú«½∞¡á∩ «í½áßΓ∞ ¡á φ¬αá¡Ñ
- ñ¿ß»½Ñ∩. Ĭ¡á ¿¼ÑεΓ ¿ ñαπú¿Ñ ßó«⌐ßΓóá, ¡« ú½áó¡«Ñ, τΓ« «Γ½¿τáÑΓ
- ¿σ «Γ ñαπú¿σ Γ¿»«ó φ¬αá¡¡δσ ¿º«íαáªÑ¡¿⌐, - φΓ« ¿σ ß»«ß«í¡«ßΓ∞ ¬á¬
- íδ óß»½δóáΓ∞ ¿ »«úαπªáΓ∞ß∩ «Γ¡«ß¿Γѽ∞¡« «ßΓá½∞¡«ú« ¿º«íαáªÑ¡¿∩.
-
- ê¡Σ«α¼áµ¿∩, ¬«Γ«αá∩ ß«ñÑαªá½áß∞ ó ß««ΓóÑΓßΓóπεΘÑ⌐
- »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿ φ¬αá¡á ñ« »«∩ó½Ñ¡¿∩ ¡«ó«ú« «¬¡á, ñ«½ª¡á
- ß«σαá¡∩Γ∞ß∩. Ĭ¡« ¡á¬½áñδóáÑΓß∩ ¡á »αÑñΦÑßΓóπεΘÑÑ ¿º«íαáªÑ¡¿Ñ,
- ¬á¬ íδ óß»½δóáÑΓ. è«úñá «¬¡« π¡¿τΓ«ªáÑΓß∩ (»«úαπªáÑΓß∩), Γ«
- ¿¡Σ«α¼áµ¿∩, ¬«Γ«αá∩ íδ½á ñ« Ñú« »«∩ó½Ñ¡¿∩, ñ«½ª¡á íδΓ∞
- ó«ßßΓá¡«ó½Ñ¡á. Æá τáßΓ∞ ¿º«íαáªÑ¡¿∩, ¡á ¬«Γ«απε ¡á¬½áñδóáÑΓß∩
- ¡«ó«Ñ «¬¡«, Γá¬ªÑ ¼«ªÑΓ ß«ñÑαªáΓ∞ «¬¡á. ìá α¿ß. 5.3 »αÑñßΓáó½Ñ¡«
- ¿º«íαáªÑ¡¿Ñ ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩, ¬«Γ«α«Ñ ß«ñÑαª¿Γ ¡Ñ߬«½∞¬« «¬«¡,
- »α¿τѼ ¬áªñ«Ñ »«ß½ÑñπεΘÑÑ «¬¡« ¡á¬½áñδóáÑΓß∩ ¡á τáßΓ∞
- »αÑñδñπΘÑú«.
-
-
- ┌───────────────────────────────────────────────────────────┐
- │ ┌────────────────────────────┐ │
- │ │ │ │
- │ │ │ │
- │ │ ┌─────────┴──────┐ │
- │ │ │ │ │
- │ ┌───────────┤ │ Ĭ¡« D │ │
- │ │ │ Ĭ¡« B │ │ │
- │ │ │ │ │ │
- │ │ │ ┌──────────────┤ ├──┐ │
- │ │ │ │ Ĭ¡« C │ │ │ │
- │ │ Ĭ¡│ │ ┌────────┴────────────────┴─┐│ │
- │ │ │ │ │ ││ │
- │ │ │ │ │ ││ │
- │ │ └───┤ │ Ĭ¡« E ││ │
- │ │ │ │ ││ │
- │ └───────────────┤ │ ││ │
- │ │ └────────┬────────────────┬─┘│ │
- │ │ └────────────────┘ │ │
- │ └──────────────────────────────────┘ │
-
- - 2 -
- │ │
- │ │
- └───────────────────────────────────────────────────────────┘
-
- É¿ß. 5.2 ìὫªÑ¡¿Ñ ¡Ñ߬«½∞¬¿σ «¬«¡
-
-
- àß½¿ íδ ¬áªñá∩ »α«úαá¼¼á, αáí«ΓáεΘá∩ ß «¬¡á¼¿, ñ«½ª¡á íδ½á
- π»αáó½∩Γ∞ αẼÑΘÑ¡¿Ñ¼ «¬«¡ ¿ ó«ßßΓá¡áó½¿óáΓ∞ ß«ñÑন¼«Ñ φ¬αá¡á,
- ¬«Γ«α«Ñ í佫 ñ« ¿σ »«∩ó½Ñ¡¿∩, Γ« ß«ºñá¡¿Ñ ¿ ß«»α«ó«ªñÑ¡¿Ñ Γᬿσ
- »α«úαá¼¼ í佫 íδ «τÑ¡∞ Γαπñ¡δ¼ ñѽ«¼. è ßτáßΓ∞ε, ó φΓ«¼ ¡ÑΓ
- ¡Ñ«íσ«ñ¿¼«ßΓ¿. ū߬«½∞¬π Σπ¡¬µ¿¿ ¿ ßó«⌐ßΓóá «¬«¡ ∩ó½∩εΓß∩ «íΘ¿¼¿
- ñ½∩ αạδσ »α¿¼Ñ¡Ñ¡¿⌐, Γ« ¼«ª¡« ¿ß»«½∞º«óáΓ∞ í¿í½¿«ΓѬπ Σπ¡¬µ¿⌐
- «íΘÑú« ¡áº¡áτÑ¡¿∩ ñ½∩ αáí«Γδ ß «¬¡á¼¿. ìáßΓ«∩Θá∩ ¬¡¿úá ß«ñÑনΓ
- Γá¬πε í¿í½¿«ΓѬπ, ÑÑ Σπ¡¬µ¿¿ «»¿ßá¡δ ó αáºñÑ½Ñ 6.
-
- Äß¡«ó¡δσ «»Ñαᵿ⌐ »« αáí«ΓÑ ß «¬¡á¼¿, ¿ß»«½∞ºπεΘ¿σß∩ ó
- í«½∞Φ¿¡ßΓóÑ »α«úαá¼¼, ¡Ñ Γá¬ πª ¼¡«ú«, ¿ «¡¿ ¡Ñ ß½¿Φ¬«¼ ß½«ª¡δ.
- Åα¿ αáí«ΓÑ ß «¬¡á¼¿ óá¼ ¡Ñ«íσ«ñ¿¼« πßΓá¡«ó¿Γ∞ «¬¡«, «»αÑñѽ¿ó Ñú«
- αẼÑαδ ¿ ¼ÑßΓ«»«½«ªÑ¡¿Ñ. éδ ¿¼ÑÑΓÑ ó«º¼«ª¡«ßΓ∞ ΓᬪÑ
- πßΓá¡áó½¿óáΓ∞ Ñú« µóÑΓá, úαá¡¿µπ ¿ ºáú«½«ó«¬. éδ ¼«ªÑΓÑ ó»¿ßáΓ∞
- ßó«⌐ ΓѬßΓ ó¡πΓα∞ «¬¡á, á Γá¬ªÑ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¿º¼Ñ¡∩Γ∞
- ¼ÑßΓ«»«½«ªÑ¡¿Ñ «¬¡á. ìᬫ¡Ñµ, óδ ¼«ªÑΓÑ πñ὿Γ∞ «¬¡« ß φ¬αá¡á,
- ó«ßßΓá¡«ó¿ó »α¿ φΓ«¼ ¿º«íαáªÑ¡¿Ñ, ¬«Γ«α«Ñ í佫 ¡á φ¬αá¡Ñ ñ«
- »«∩ó½Ñ¡¿∩ «¬¡á. Äß¡«óδóá∩ß∞ ¡á φΓ¿σ «»Ñαᵿ∩σ, óδ ¼«ªÑΓÑ
- ß«ºñáóáΓ∞ »α«úαá¼¼δ, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ τáαπεΘ¿Ñ ¼¡«ú«µóÑΓ∞Ѽ
- ¬αáß«¬ «¬¡á ó ¬áτÑßΓóÑ »«½∞º«óáΓѽ∞߬«ú« ¿¡ΓÑαΣÑ⌐ßá. (æ½ÑñπÑΓ
- »«¼¡¿Γ∞, τΓ« ¿ß»«½∞º«óá¡¿Ñ φΣΣÑ¬Γ¿ó¡«⌐ í¿í½¿«ΓѬ¿ ßἫ »« ßÑíÑ ¡Ñ
- úáαá¡Γ¿απÑΓ óδß«¬«Ñ ¬áτÑßΓó« »«½∞º«óáΓѽ∞߬¿σ σáαá¬ΓÑα¿ßΓ¿¬
- αáºαáíáΓδóáѼ«⌐ »α«úαá¼¼δ. Åα«úαá¼¼¿ßΓ ñ«½ªÑ¡ ¿ß»«½∞º«óáΓ∞ ó¼ÑßΓÑ
- ß «¬¡á¼¿ Γá¬ªÑ ºóπ¬«óδÑ φΣΣѬΓδ ¿ ñαπú¿Ñ ¿¡ßΓαπ¼Ñ¡Γá½∞¡δÑ
- »α«úαá¼¼¡δÑ ßαÑñßΓóá).
-
- ùΓ«íδ »«¡∩Γ∞, ¬á¬ ¼«ª¡« π»αáó½∩Γ∞ ¿º«íαáªÑ¡¿Ñ¼ ¡á φ¬αá¡Ñ, óδ
- ñ«½ª¡δ αẫíαáΓ∞ß∩ ó «αúá¡¿ºáµ¿¿ ó¿ñÑ«»á¼∩Γ¿. Åα¿ó«ñ¿¼δÑ ¡¿ªÑ
- ßóÑñÑ¡¿∩ »αÑñßΓáó½∩εΓ ß«í«⌐ óóÑñÑ¡¿Ñ ó áασ¿ΓѬΓπαπ ó¿ñÑ«»á¼∩Γ¿
- IBM PC. ä½∩ »«½πτÑ¡¿∩ ¿ßτÑα»δóáεΘÑ⌐ ¿¡Σ«α¼áµ¿¿ »« φΓ«¼π ó«»α«ßπ
-
- - 3 -
- «íαáΘá⌐ΓÑß∞ ¬ "Éπ¬«ó«ñßΓóπ Å¿ΓÑαá ì«αΓ«¡á ñ½∩ »α«úαá¼¼¿ßΓ«ó »«
- IBM PC" (Å¿ΓÑα ì«αΓ«¡, îicrosoft Press, 1985).
-
-
-
- Çασ¿ΓѬΓπαá ó¿ñÑ«»á¼∩Γ¿
- -----------------------------------------------------------------
-
- æ¿ßΓѼá Σ«α¼¿α«óá¡¿∩ ¿º«íαáªÑ¡¿∩ ∩ó½∩ÑΓß∩ ¡Ñ«ΓΩѼ½Ñ¼«⌐
- τáßΓ∞ε Å¥éî IBM PC. é í«½ÑÑ αá¡¡¿σ ¼«ñѽ∩σ »Ñαß«¡á½∞¡δσ ¥éî
- ó¿ñÑ«ΓÑନ¡á½δ »«ñ¬½ετ὿ß∞ τÑαѺ »«ß½Ññ«óáΓѽ∞¡δÑ »«αΓδ
- óó«ñá/óδó«ñá, ¡« á»»áαáΓ¡á∩ áασ¿ΓѬΓπαá IBM PC ó¬½ετáÑΓ ó ßÑí∩ ¿
- ó¿ñѫ߿ßΓѼπ.
-
- ÅαÑñ¡áº¡áτÑ¡¡«Ñ ñ½∩ óδó«ñá ¡á φ¬αá¡ ¿º«íαáªÑ¡¿Ñ ß«ºñáÑΓß∩ ó
- ó¿ñÑ«»á¼∩Γ¿. é IBM PC ó ¬áτÑßΓóÑ ó¿ñÑ«»á¼∩Γ¿ ¿ß»«½∞ºπÑΓß∩ τáßΓ∞
- «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿. é¿ñÑ«»á¼∩Γ∞ ñ«ßΓπ»¡á ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿
- »α«µÑßß«απ ¿, ß½Ññ«óáΓѽ∞¡«, óáΦ¿¼ »α«úαá¼¼á¼. é¿ñÑ«»α«µÑßß«α,
- óσ«ñ∩Θ¿⌐ ó ß«ßΓáó ó¿ñÑ«¬«¡Γα«½½Ñαá, »« ß«ñÑন¼«¼π ó¿ñÑ«»á¼∩Γ¿
- »«ßΓ«∩¡¡« Σ«α¼¿απÑΓ ¿º«íαáªÑ¡¿Ñ ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩. Å«φΓ«¼π
- ¬áªñδ⌐ ¡«óδ⌐ ß¿¼ó«½, ºá»¿ßá¡¡δ⌐ ó ó¿ñÑ«»á¼∩Γ∞, »«τΓ¿ ¡Ñ¼Ññ½Ñ¡¡«
- »«∩ó½∩ÑΓß∩ ¡á φ¬αá¡Ñ. ū߬«½∞¬π ó¿ñÑ«»á¼∩Γ∞ ñ«ßΓπ»¡á ñ½∩
- ¼¿¬α«»α«µÑßß«αá, Γ« ߬«α«ßΓ∞ Σ«α¼¿α«óá¡¿∩ ¿º«íαáªÑ¡¿∩
- ß««ΓóÑΓßΓóπÑΓ ß¬«α«ßΓ¿ »ÑαÑß佬¿ ß«ñÑন¼«ú« »á¼∩Γ¿, ¬«Γ«αá∩
- »αÑóδΦáÑΓ ß¬«α«ßΓ∞ »ÑαÑñáτ¿ ñá¡¡δσ »α¿ »«ñ¬½ετÑ¡¿¿ ó¿ñÑ«ΓÑନ¡á½á
- τÑαѺ »«ß½Ññ«óáΓѽ∞¡δÑ »«αΓδ óó«ñá/óδó«ñá.
-
- ÇñαÑßá ó¿ñÑ«»á¼∩Γ¿ ¿ ÑÑ σáαá¬ΓÑα¿ßΓ¿¬¿ ∩ó½∩εΓß∩ ßΓá¡ñáαΓ¡δ¼¿
- ñ½∩ óßÑσ Å¥éî ½¿¡¿¿ IBM PC, á Γá¬ªÑ ß«ó¼ÑßΓ¿¼δσ ß ¡¿¼¿.
-
- Å¥éî Γ¿»á IBM PC ¼«ªÑΓ ¿¼ÑΓ∞ «ñ¡π ¿º ΓαÑσ ó¿ñѫ߿ßΓѼ,
- ¿ß»«½∞ºπεΘ¿σ αẽ¿τ¡δÑ Γ¿»δ ó¿ñÑ«¼«¡¿Γ«α«ó ¿, ß½Ññ«óáΓѽ∞¡«,
- αẽ¿τ¡δÑ Γ¿»δ ó¿ñÑ«¬«¡Γα«½½Ñα«ó. é¿ñÑ«¬«¡Γα«½½Ñα »Ñαó«ú« Γ¿»á
- ¡áºδóáÑΓß∩ î«¡«σα«¼¡δ¼ Çñá»ΓÑα«¼ (îÇ), «¡ «íÑß»Ñτ¿óáÑΓ αáí«Γπ
- Γ«½∞¬« ¼«¡«σα«¼¡«ú« ó¿ñÑ«¼«¡¿Γ«αá ó ß¿¼ó«½∞¡«¼ αѪ¿¼Ñ ¿ ¡Ñ
- »«ññÑনóáÑΓ úαáΣ¿τÑ߬«ú« αѪ¿¼á. é¿ñÑ«¬«¡Γα«½½Ñα óΓ«α«ú« Γ¿»á
- ¡áºδóáÑΓß∩ ûóÑΓ¡δ¼ âαáΣ¿τÑ߬¿¼ Çñá»ΓÑα«¼ (CGA). æ »«¼«Θ∞ε
-
- - 4 -
- ¬«¡Γα«½½Ñαá CGA »«ñ¬½ετáÑΓß∩ µóÑΓ¡«⌐ ¼«¡¿Γ«α, ¬«Γ«αδ⌐ ¼«ªÑΓ
- αáí«ΓáΓ∞ ó ñóπσ αẽ¿τ¡δσ αѪ¿¼áσ. é ß¿¼ó«½∞¡«¼ αѪ¿¼Ñ ¿¼ÑÑΓß∩
- 󫺼«ª¡«ßΓ∞ óδí¿αáΓ∞ µóÑΓ Σ«¡á ¿ µóÑΓ ß¿¼ó«½á ¿º ó«ß∞¼¿ 󫺼«ª¡δσ
- µóÑΓ«ó, á Γá¬ªÑ «ñ¿¡ ¿º ñóπσ πα«ó¡Ñ⌐ ¿¡Γѡ߿ó¡«ßΓ¿ µóÑΓá ñ½∩
- ß¿¼ó«½á. é úαáΣ¿τÑ߬«¼ αѪ¿¼Ñ ¡¿º¬«ú« αáºαÑΦÑ¡¿∩ (640x200
- αáßΓα«óδσ Γ«τѬ) ¼«ª¡« αáí«ΓáΓ∞ Γ«½∞¬« ß «ñ¡¿¼ µóÑΓ«¼. ÆαÑΓ¿⌐
- ó¿ñÑ«¬«¡Γα«½½Ñα ¡áºδóáÑΓß∩ ôß«óÑαΦÑ¡ßΓó«óá¡¡δ¼ âαáΣ¿τÑ߬¿¼
- Çñá»ΓÑα«¼ (EGA), ¬«Γ«αδ⌐ »«ññÑনóáÑΓ Γᬫ⌐ ªÑ ß¿¼ó«½∞¡δ⌐ αѪ¿¼,
- τΓ« ¿ CGA, ¿ ¼¡«ú«µóÑΓ¡δ⌐ úαáΣ¿τÑ߬¿⌐ αѪ¿¼ í«½ÑÑ óδß«¬«ú«
- αáºαÑΦÑ¡¿∩.
-
- Åα¿óÑñÑ¡¡δÑ ó ñá¡¡«⌐ ¬¡¿úÑ »α«úαá¼¼δ αáí«ΓáεΓ ß ½εíδ¼ ¿º
- φΓ¿σ ¬«¡Γα«½½Ñα«ó ó ß¿¼ó«½∞¡«¼ αѪ¿¼Ñ. ū߬«½∞¬π ó φΓ«¼ αѪ¿¼Ñ
- ¬«¡Γα«½½Ñαδ CGA ¿ EGA Σπ¡¬µ¿«¡á½∞¡« φ¬ó¿óá½Ñ¡Γ¡δ, Γ«
- ¡¿ªÑß½ÑñπεΘ¿Ñ αáßßπªñÑ¡¿∩ ñ½∩ CGA «Γ¡«ß∩Γß∩ ¬ «í«¿¼ φΓ¿¼
- ¬«¡Γα«½½Ñαá¼.
-
- é¿ñÑ«»á¼∩Γ∞ «αúá¡¿º«óá¡á ó ó¿ñÑ ñóπ¼Ñα¡«ú« ¼áßß¿óá ß¿¼ó«½«ó,
- ß«ßΓ«∩ΘÑú« ¿º α∩ñ«ó ¿ ¬«½«¡«¬. àÑ ¼«ª¡« αáßß¼áΓα¿óáΓ∞ ¿ ¬á¬ ¡áí«α
- ß½ÑñπεΘ¿σ ñαπú ºá ñαπú«¼ 16-αáºα∩ñ¡δσ ß½«ó, »« «ñ¡«¼π ¡á ¬áªñδ⌐
- ß¿¼ó«½. èáªñδ⌐ α∩ñ ß«ñÑαª¿Γ 80 ß½ÑñπεΘ¿σ ñαπú ºá ñαπú«¼ ß¿¼ó«½«ó,
- óßÑ «¡¿ «íαáºπεΓ 25 ß½ÑñπεΘ¿σ ñαπú ºá ñαπú«¼ ¬«½«¡«¬. 潫ó«
- ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε «í «ñ¡«¼ ß¿¼ó«½Ñ ¿ ß«ßΓ«¿Γ ¿º ñóπσ
- ó«ß∞¼¿í¿Γ¡δσ íá⌐Γ: «ñ¿¡ - ñ½∩ ASCII-¬«ñá ß¿¼ó«½á, óΓ«α«⌐ - ñ½∩
- áΓα¿íπΓ«ó ß¿¼ó«½á, «»αÑñѽ∩εΘ¿σ Ñú« ¿º«íαáªÑ¡¿Ñ. è«ñ ASCII
- ºá»¿ßá¡ ó ¼½áñΦѼ (»αáó«¼) íá⌐ΓÑ ß½«óá.
-
- é¿ñÑ«»á¼∩Γ∞ ¬«¡Γα«½½Ñαá îÇ «αúá¡¿º«óá¡á ó ó¿ñÑ «ñ¡«⌐
- ßΓαá¡¿µδ, á ¬«¡Γα«½½Ñαá CGA - ó ó¿ñÑ τÑΓδαÑσ ßΓαá¡¿µ. Åα«úαá¼¼δ
- ¿º φΓ«⌐ ¬¡¿ú¿ ¿ß»«½∞ºπεΓ Γ«½∞¬« »Ñαóπε ßΓαá¡¿µπ ó¿ñÑ«»á¼∩Γ¿
- ¬«¡Γα«½½Ñαá CGA.
-
- é¿ñÑ«»á¼∩Γ∞ αáß»«½«ªÑ¡á ó óÑασ¡¿σ «í½áßΓ∩σ ñ«ßΓπ»¡«ú«
- »α«µÑßß«απ áñαÑß¡«ú« »α«ßΓαá¡ßΓóá. Éáºαáí«Γτ¿¬¿ IBM PC,
- ßΓ«½¬¡πóΦ¿ß∞ ß «úαá¡¿τÑ¡¿Ñ¼ ¡á ¼á¬ß¿¼á½∞¡δ⌐ «íΩѼ áñαÑßπѼ«ú«
- áñαÑß¡«ú« »α«ßΓαá¡ßΓóá ó 1 ¼Ñúáíá⌐Γ, αÑΦ¿½¿ αẼÑßΓ¿Γ∞
- ó¿ñÑ«»á¼∩Γ∞ ¿ Åçô üẫó«⌐ æ¿ßΓѼδ éó«ñá-éδó«ñá (ROM BIOS) ó
-
- - 5 -
- óÑασ¡¿σ «í½áßΓ∩σ φΓ«ú« »α«ßΓαá¡ßΓóá. ä½∩ Γ«ú«, τΓ«íδ »«ºó«½¿Γ∞
- ¬«¡Γα«½½Ñαá¼ îÇ ¿ CGA αáí«ΓáΓ∞ ß«ó¼ÑßΓ¡« ¡á «ñ¡«⌐ Å¥éî,
- αáºαáí«Γτ¿¬¿ ¡áº¡áτ¿½¿ αẽ¿τ¡δÑ áñαÑßá ßÑú¼Ñ¡Γ«ó ó¿ñÑ«»á¼∩Γ¿ ñ½∩
- αạδσ ¬«¡Γα«½½Ñα«ó. Åá¼∩Γ∞ ¬«¡Γα«½½Ñαá îÇ ¡áτ¿¡áÑΓß∩ ó ßÑú¼Ñ¡ΓÑ
- 0xB000, á »á¼∩Γ∞ ¬«¡Γα«½½Ñαá CGA - ó ßÑú¼Ñ¡ΓÑ 0xB800. Åα«úαá¼¼á
- ¼«ªÑΓ «»αÑñѽ¿Γ∞, ¬á¬«⌐ ¿º ¬«¡Γα«½½Ñα«ó ¿ß»«½∞ºπÑΓß∩, »πΓѼ
- ó맮óá ß««ΓóÑΓßΓóπεΘÑ⌐ Σπ¡¬µ¿¿ ROM BIOS, ¿ ¡áßΓα«¿Γ∞ß∩ Γᬿ¼
- «íαẫ¼ ¡á ß««ΓóÑΓßΓóπεΘ¿⌐ áñαÑß ßÑú¼Ñ¡Γá ó¿ñÑ«»á¼∩Γ¿. ū߬«½∞¬π
- áασ¿ΓѬΓπαá ó¿ñÑ«»á¼∩Γ¿ ñ½∩ Γ«ú« ¿ ñαπú«ú« ß½πτá∩ ó «ß¡«ó¡«¼
- «ñ¿¡á¬«óá, Γ« ¡Ñ«íσ«ñ¿¼δÑ ñÑ⌐ßΓó¿∩ »« ¡áßΓα«⌐¬Ñ »α«úαá¼¼δ íπñπΓ
- ¼¿¡¿¼á½∞¡δ¼¿.
-
- üá⌐Γ áΓα¿íπΓ«ó ß¿¼ó«½á ß«ñÑαª¿Γ 2 ΓαÑσαáºα∩ñ¡δσ »«½∩
- ¬«ñ¿α«óá¡¿∩ µóÑΓá («ñ¡« ñ½∩ µóÑΓá Σ«¡á ß¿¼ó«½á ¿ «ñ¡« ñ½∩ µóÑΓá
- ßἫú« ß¿¼ó«½á), αáºα∩ñ ñ½∩ ºáñá¡¿∩ πα«ó¡∩ ¿¡Γѡ߿ó¡«ßΓ¿ µóÑΓá
- ß¿¼ó«½á ¿ αáºα∩ñ ñ½∩ πßΓá¡«ó¬¿ αѪ¿¼á ¼Ñαµá¡¿∩ ß¿¼ó«½á »α¿ Ñú«
- «Γ«íαáªÑ¡¿¿. ìá α¿ß. 5.4 »αÑñßΓáó½Ñ¡á ¬«¡Σ¿úπαᵿ∩ íá⌐Γá
- áΓα¿íπΓ«ó.
-
-
- ┌────┬────┬────┬────┬────┬────┬────┬────┐
- │ │ │ │ │ │ │ │ │
- │ B │ R │ G │ B │ I │ R │ G │ B │
- │ │ │ │ │ │ │ │ │
- └─┬──┼────┴────┴────┼──┬─┼────┴────┴────┤
- │ └───────┬──────┘ │ └───────┬──────┘
- │ │ │ │
- │ │ │ └─────── µóÑΓ ß¿¼ó«½á
- │ │ │
- │ │ └───────────────── ¿¡Γѡ߿ó¡«ßΓ∞ µóÑΓá
- │ │ ß¿¼ó«½á
- │ └─────────────────────────── µóÑΓ Σ«¡á
- │
- └────────────────────────────────────── ¼Ñαµá¡¿Ñ ß¿¼ó«½á
-
-
- É¿ß. 5.4 üá⌐Γ áΓα¿íπΓ«ó ß¿¼ó«½á
-
- - 6 -
-
-
- è«¼í¿¡áµ¿¿ ¬αáß¡«⌐, ºÑ½Ñ¡«⌐ ¿ ú«½πí«⌐ µóÑΓ«óδσ ß«ßΓáó½∩εΘ¿σ
- »«ºó«½∩εΓ »«½πτ¿Γ∞ ¡áí«α ¿º ó«ß∞¼¿ «ΓτÑΓ½¿ó« αẽ¿τáѼδσ µóÑΓ«ó:
- íѽ«ú«, ¬αáß¡«ú«, ºÑ½Ñ¡«ú«, ú«½πí«ú«, ß¿¡Ñú«, ¼á½¿¡«ó«ú«, ªÑ½Γ«ú«
- ¿ τÑα¡«ú«. êß»«½∞º«óá¡¿Ñ αáºα∩ñá ¿¡Γѡ߿ó¡«ßΓ¿ ñ½∩ µóÑΓá ß¿¼ó«½á
- »«ºó«½∩ÑΓ »«½πτ¿Γ∞ ÑΘÑ ó«ßѼ∞ ñ«»«½¡¿Γѽ∞¡δσ «ΓΓÑ¡¬«ó µóÑΓá.
-
- é ß½πτáÑ ¿ß»«½∞º«óá¡¿∩ î«¡«σα«¼¡«ú« Çñá»ΓÑαá º¡áτÑ¡¿Ñ íá⌐Γá
- áΓα¿íπΓ«ó ¡Ñ¼¡«ú« «Γ½¿τáÑΓß∩ «Γ «»¿ßá¡¡«ú« óδΦÑ. ū߬«½∞¬π
- 󫺼«ª¡«ßΓ∞ ¿ß»«½∞º«óá¡¿∩ αẽ¿τ¡δσ µóÑΓ«ó ¡Ñ »«ññÑনóáÑΓß∩
- ¬«¡Γα«½½Ñα«¼ îÇ, Γ« αáºαÑΦÑ¡δ Γ«½∞¬« ¬«¼í¿¡áµ¿¿ íѽ«ú« ß¿¼ó«½á
- ¡á τÑα¡«¼ Σ«¡Ñ ¿½¿ τÑα¡«ú« ß¿¼ó«½á ¡á íѽ«¼ Σ«¡Ñ. äαπú¿Ñ ¬«ñδ
- µóÑΓá ñáεΓ ¬«¼í¿¡áµ¿¿ τÑα¡«ú« ¡á τÑα¡«¼ ¿½¿ íѽ«ú« ¡á íѽ«¼.
- ò«Γ∩ ß½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞, τΓ« ¬«¼í¿¡áµ¿∩ ú«½πí«ú« ß¿¼ó«½á ¿
- τÑα¡«ú« Σ«¡á Σ«α¼¿απÑΓ ¿º«íαáªÑ¡¿Ñ »«ñτÑભπΓ«ú« ß¿¼ó«½á, τΓ« ¡Ñ
- »«ññÑনóáÑΓß∩ πªÑ ¬«¡Γα«½½Ñα«¼ CGA. î«¡«σα«¼¡δ⌐ Çñá»ΓÑα, ¬á¬ ¿
- CGA, »«ññÑনóáÑΓ ó«º¼«ª¡«ßΓ¿ ºáñá¡¿∩ ¿¡Γѡ߿ó¡«ßΓ¿ µóÑΓá ¿
- αѪ¿¼á ¼Ñαµá¡¿∩ ß¿¼ó«½á.
-
- ū߬«½∞¬π óδ ΓÑ»Ñα∞ º¡áÑΓÑ, úñÑ αẼÑΘÑ¡á ó¿ñÑ«»á¼∩Γ∞ ¿ τΓ«
- ó ¡ÑÑ ¼«ªÑΓ íδΓ∞ ºá»¿ßá¡«, Γ« ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ »α«úαá¼¼π pokes
- ¿º í¿í½¿«ΓѬ¿ Æπαí« æ¿ ñ½∩ Σ«α¼¿α«óá¡¿∩ ¿º«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ
- ñ¿ß»½Ñ∩. ì¿ªÑ »α¿ó«ñ¿Γß∩ ½¿ßΓ¿¡ú 5.1 ¼á½Ñ¡∞¬«⌐ »α«úαá¼¼δ »«ñ
- ¡áºó᡿Ѽ vidpoke.c, ¬«Γ«αá∩ ºá»¿ßδóáÑΓ ßΓ᫬π ¡Ñ»«ßαÑñßΓóÑ¡¡« ó
- ó¿ñÑ«»á¼∩Γ∞. êßσ«ñ∩ ¿º »αÑñ»«½«ªÑ¡¿∩, τΓ« ¡á óáΦÑ⌐ ¼áΦ¿¡Ñ
- αáí«ΓáÑΓ ¬«¡Γα«½½Ñα CGA, »α«úαá¼¼á Σ«α¼¿απÑΓ ñ½∩ ¬áªñ«ú« ß¿¼ó«½á
- íá⌐Γ áΓα¿íπΓá ß« º¡áτÑ¡¿Ñ¼ 7, τΓ« ß««ΓóÑΓßΓóπΓ «Γ«íαáªÑ¡¿ε ßΓ᫬¿
- ó ó¿ñÑ íѽδσ ß¿¼ó«½«ó ¡á τÑα¡«¼ Σ«¡Ñ. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ
- î«¡«σα«¼¡δ⌐ Çñá»ΓÑα, ¿º¼Ñ¡¿ΓÑ ó ßΓα«¬Ñ # define VSEG º¡áτÑ¡¿Ñ ß
- 0xB800 ¡á 0xB000.
-
-
- ï¿ßΓ¿¡ú 5.1: vidpoke.c
-
- /* vidpoke.c */
-
-
- - 7 -
- #define VSEG 0x6800
- char vdata [] = "ùΓ« ßñѽὠèá¡?";
- main()
- {
- char *vp;
- int v;
- for (v=0, vp = vdata; *vp; v +=2, vp++)
- poke ( VSEG, v, 0x700| *vp);
- }
-
-
-
- "æ¡Ñú" ¿ «íαáΓ¡δ⌐ σ«ñ ½πτá αáºóÑαΓ¬¿
- -----------------------------------------------------------------
-
- àß½¿ óδ ºá»πßΓ¿ΓÑ »α«úαá¼¼π vidpoke.exe ó µ¿¬½Ñ ¿½¿
- º¡áτ¿Γѽ∞¡« πóѽ¿τ¿ΓÑ ñ½¿¡π óδó«ñ¿¼«⌐ ßΓ᫬¿, Γ« ß¼«ªÑΓÑ πó¿ñÑΓ∞
- ¡á φ¬αá¡Ñ Γᬠ¡áºδóáѼδ⌐ "ß¡Ñú", ¬«Γ«αδ⌐ »«∩ó½∩ÑΓß∩ »α¿
- óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ. éδ íπñÑΓÑ ¡áí½εñáΓ∞ "ß¡Ñú" Γ«½∞¬« ó ß½πτáÑ
- ¿ß»«½∞º«óá¡¿∩ ¬«¡Γα«½½Ñαá CGA ¿½¿ Ñú« á¡á½«úá. è«¡Γα«½½Ñαδ àGA ¿
- îÇ ¡Ñ ñáεΓ »«ñ«í¡«ú« φΣΣѬΓá. êº ¡¿ªÑß½ÑñπεΘ¿σ «íΩ∩ߡѡ¿⌐ óδ
- πº¡áÑΓÑ, »«τѼπ 󫺡¿¬áÑΓ "ß¡Ñú" ¿ ¬á¬ Ñú« ¼«ª¡« πßΓαá¡¿Γ∞
- »α«úαá¼¼¡¼¿ ßαÑñßΓóἿ.
-
- "æ¡Ñú" 󫺡¿¬áÑΓ »α¿ ¿ß»«½∞º«óá¡¿¿ ¬«¡Γα«½½Ñαá CGA ¿º-ºá
- «ß«íÑ¡¡«ßΓÑ⌐ á»»áαáΓ¡«⌐ áασ¿ΓѬΓπαδ ó¿ñѫ߿ßΓѼδ. ū߬«½∞¬π ¿
- ¼¿¬α«»α«µÑßß«α, ¿ ó¿ñÑ«¬«¡Γα«½½Ñα «íαáΘáεΓß∩ ¬ «ñ¡«⌐ ó¿ñÑ«»á¼∩Γ¿,
- Γ« ó ß½πτáÑ «ñ¡«óαѼѡ¡«ú« «íαáΘÑ¡¿∩ 󫺡¿¬áÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ó
- ¬««αñ¿¡¿α«óá¡¿¿ ñ«ßΓπ»á ¬ »á¼∩Γ¿. Éáí«Γá ó¿ñÑ«¬«¡Γα«½½Ñαá
- ß¿¡σα«¡¿º¿α«óá¡á »« óαѼѡ¿ ß αáí«Γ«⌐ ßσѼδ αáºóÑαΓ¬¿. é« óαѼ∩
- Σ«α¼¿α«óá¡¿∩ φ½Ñ¼Ñ¡Γá ¿º«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ ó¿ñÑ«¬«¡Γα«½½Ñα
- ñ«½ªÑ¡ ¿¼ÑΓ∞ ñ«ßΓπ» ¬ ∩τÑ⌐¬Ñ »á¼∩Γ¿, ¬«Γ«αá∩ ß«ñÑαª¿Γ í¿Γ,
- ß««ΓóÑΓßΓóπεΘ¿⌐ φΓ«¼π φ½Ñ¼Ñ¡Γπ ¿º«íαáªÑ¡¿∩. é¿ñÑ«»α«µÑßß«α »α¿
- φΓ«¼ ¡Ñ ¼«ªÑΓ ªñáΓ∞, »«ß¬«½∞¬π «¡ ªÑßΓ¬« ß¿¡σα«¡¿º¿α«óá¡ ß
- πßΓα«⌐ßΓó«¼ Σ«α¼¿α«óá¡¿∩ αáßΓαá. æ½Ññ«óáΓѽ∞¡«, Ñß½¿
- ó¿ñÑ«¬«¡Γα«½½Ñα ¿ ¼¿¬α«»α«µÑßß«α »δΓáεΓß∩ «ñ¡«óαѼѡ¡«
- «íαáΓ¿Γ∞ß∩ ¬ «ñ¡«⌐ ¿ Γ«⌐ ªÑ ∩τÑ⌐¬Ñ »á¼∩Γ¿, Γ« ó¿ñÑ«¬«¡Γα«½½Ñα
-
- - 8 -
- ñ«½ªÑ¡ ¿¼ÑΓ∞ »α¿ φΓ«¼ í«½ÑÑ óδß«¬¿⌐ »α¿«α¿ΓÑΓ. é σ«α«Φ«
- αáºαáí«Γá¡¡«⌐ ß¿ßΓÑ¼Ñ ¼¿¬α«»α«µÑßß«α íπñÑΓ ¡áσ«ñ¿Γ∞ß∩ ó ß«ßΓ«∩¡¿¿
- «ª¿ñá¡¿∩, »α¿ ¬«Γ«α«¼ ºá»α«ßδ ¼¿¬α«»α«µÑßß«αá ¬ ó¿ñÑ«»á¼∩Γ¿ ¡Ñ
- »«ßΓπ»áεΓ. é ¬«¡Γα«½½Ñαáσ îÇ ¿ EGA ¿ß»«½∞º«óá¡ φëà »α¿¡µ¿», ¿
- óδ ¼«ªÑΓÑ ¡Ñ íÑß»«¬«¿Γ∞ß∩ « ¬«¡Σ½¿¬Γ¡δσ ß¿Γπᵿ∩σ ¼Ñªñπ
- ¼¿¬α«»α«µÑßß«α«¼ ¿ ó¿ñÑ«¬«¡Γα«½½Ñα«¼ »α¿ ñ«ßΓπ»Ñ ¬ ó¿ñÑ«»á¼∩Γ¿.
- ì« ó ¬«¡Γα«½½ÑαÑ CGA ó ß¿¼ó«½∞¡«¼ αѪ¿¼Ñ φΓ«ú« ¡Ñ óδ»«½¡∩ÑΓß∩,
- »«φΓ«¼π óδ ñ«½ª¡δ ßἿ »αÑñ»α¿¡¿¼áΓ∞ ¡Ñ¬«Γ«αδÑ ñÑ⌐ßΓó¿∩.
-
- é ß½πτáÑ ¿ß»«½∞º«óá¡¿∩ ¬«¡Γα«½½Ñαá CGA, Ñß½¿ ¼¿¬α«»α«µÑßß«απ
- ¡πª¡« «íαáΓ¿Γ∞ß∩ ¬ ó¿ñÑ«»á¼∩Γ¿ ñ½∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿, Γ« φΓ« Ѽπ
- αáºαÑΦáÑΓß∩, á ó¿ñÑ«¬«¡Γα«½½Ñαπ ñ«ßΓπ» ¡á φΓ« óαѼ∩ ºá»αÑΘáÑΓß∩.
- Ç »«ß¬«½∞¬π αáí«Γá ó¿ñÑ«¬«¡Γα«½½Ñαá ªÑßΓ¬« »α¿ó∩ºá¡á »« óαѼѡ¿ ¬
- Σ«α¼¿α«óá¡¿ε ú«α¿º«¡Γá½∞¡«⌐ ¿ óÑαΓ¿¬á½∞¡«⌐ αáºóÑαΓ«¬ ¡á φ¬αá¡Ñ
- ¥ïÆ, Γ« ó¼ÑßΓ« ¿ºó½ÑτÑ¡¡δσ ¿º ó¿ñÑ«»á¼∩Γ¿ ñá¡¡δσ ó¿ñÑ«¬«¡Γα«½½Ñα
- »α¿ Σ«α¼¿α«óá¡¿¿ ¿º«íαáªÑ¡¿∩ ó φΓ« óαѼ∩ óδ¡πªñÑ¡ ¿ß»«½∞º«óáΓ∞
- ß½πτá⌐¡δÑ ñá¡¡δÑ. Å«φΓ«¼π, ¬«úñá óáΦá »α«úαá¼¼á ¿º¼Ñ¡∩ÑΓ
- ß«ñÑন¼«Ñ »á¼∩Γ¿, ¡á φ¬αá¡Ñ ß½πτá⌐¡δ¼ «íαẫ¼ 󫺡¿¬áεΓ
- ¼ÑαµáεΘ¿Ñ ßóÑΓ½δÑ »∩Γ¡á, ¡áºδóáѼδÑ "ß¡Ñú«¼".
-
- è ßτáßΓ∞ε, ¬«¡Γα«½½Ñα CGA »«ºó«½∩ÑΓ ¿ºíáó¿Γ∞ß∩ «Γ φΓ«ú«
- αáºñαáªáεΘÑú« ¼Ñαµá¡¿∩. Åα¿ Σ«α¼¿α«óá¡¿¿ ¿º«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ
- ¥ïÆ φ½Ñ¬Γα«¡¡á∩ »πΦ¬á í«¼íáαñ¿απÑΓ φ½Ñ¬Γα«¡á¼¿ »∩Γ¡á Σ«ßΣ«αá ¡á
- »«óÑασ¡«ßΓ¿ φ¬αá¡á. àß½¿ φ¡Ñαú¿∩ φ½Ñ¬Γα«¡«ó íπñÑΓ ñ«ßΓáΓ«τ¡«
- óδß«¬á, Γ« »∩Γ¡á Σ«ßΣ«αá íπñπΓ ßóÑΓ¿Γ∞ß∩, ó »α«Γ¿ó¡«¼ ß½πτáÑ
- «¡¿ íπñπΓ ΓѼ¡δ¼¿. 꺫íαáªÑ¡¿Ñ ¡á φ¬αá¡Ñ ¥ïÆ Σ«α¼¿απÑΓß∩ ó ó¿ñÑ
- »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ú«α¿º«¡Γá½∞¡δσ ½¿¡¿⌐, ¡áºδóáѼδσ αáßΓα«ó묨
- ½¿¡¿∩¼¿. è«¡Γα«½½Ñα CGA Σ«α¼¿απÑΓ 200 Γá¬¿σ ½¿¡¿⌐. ÉáºóÑαΓ¬á
- «ßπΘÑßΓó½∩ÑΓß∩ φ½Ñ¬Γα«¡¡δ¼ ½πτ«¼ ß½Ñóá ¡á»αáó« ¿ ßóÑασπ 󡿺.
- (ìá ßἫ¼ ñÑ½Ñ ¿ß»«½∞ºπεΓß∩ Γα¿ φ½Ñ¬Γα«¡¡δσ »πΦ¬¿, »« «ñ¡«⌐ ñ½∩
- ¬áªñ«ú« ¿º «ß¡«ó¡δσ µóÑΓ«ó: ¬αáß¡«ú«, ºÑ½Ñ¡«ú« ¿ ú«½πí«ú«). Åα¿
- ñ«ßΓ¿ªÑ¡¿¿ ¬«¡µá αáßΓα«ó«⌐ ½¿¡¿¿ φ½Ñ¬Γα«¡¡δ⌐ ½πτ ñ«½ªÑ¡
- »ÑαѼÑßΓ¿Γ∞ß∩ ¬ ½Ñó«¼π ¬αáε φ¬αá¡á ¿ ¡á «ñ¡π ½¿¡¿ε 󡿺. ¥Γ«
- »ÑαѼÑΘÑ¡¿Ñ ¡áºδóáÑΓß∩ ú«α¿º«¡Γá½∞¡δ¼ «íαáΓ¡δ¼ σ«ñ«¼ ½πτá. ū߽Ñ
- Σ«α¼¿α«óá¡¿∩ ßἫ⌐ ¡¿ª¡Ñ⌐ αáßΓα«ó«⌐ ½¿¡¿¿ φ½Ñ¬Γα«¡¡δ⌐ ½πτ
- ñ«½ªÑ¡ óÑα¡πΓ∞ß∩ ¬ ßἫ⌐ óÑασ¡Ñ⌐ αáßΓα«ó«⌐ ½¿¡¿¿ φ¬αá¡á. ¥Γ«
- »ÑαѼÑΘÑ¡¿Ñ ¡áºδóáÑΓß∩ óÑαΓ¿¬á½∞¡δ¼ «íαáΓ¡δ¼ σ«ñ«¼ ½πτá. é« óαѼ∩
-
- - 9 -
- φΓ¿σ ñóπσ »ÑαѼÑΘÑ¡¿⌐ φ¡Ñαú¿∩ φ½Ñ¬Γα«¡¡«ú« ½πτá ¡¿º¬á∩, ¿ «¡ ¡Ñ
- »«ñßóÑτ¿óáÑΓ αáßΓα«óδÑ Γ«τ¬¿. é φΓ« óαѼ∩ ¡Ñ »α«¿ßσ«ñ¿Γ
- «Γ«íαáªÑ¡¿∩ ß¿¼ó«½«ó ¡á φ¬αá¡Ñ, ¿ ó¿ñÑ«¬«¡Γα«½½Ñα ¡Ñ
- «ßπΘÑßΓó½∩ÑΓ τΓÑ¡¿∩ ¿º ó¿ñÑ«»á¼∩Γ¿. æ½Ññ«óáΓѽ∞¡«, ó
- »α«¼ÑªπΓ¬¿ óαѼѡ¿, ß««ΓóÑΓßΓóπεΘ¿Ñ «íαáΓ¡«¼π σ«ñπ ½πτá,
- ¼¿¬α«»α«µÑßß«α ¿¼ÑÑΓ íÑß»αÑ»∩ΓßΓóÑ¡¡δ⌐ ñ«ßΓπ» ¬ ó¿ñÑ«»á¼∩Γ¿.
-
- è«¡Γα«½½Ñα CGA ¿¼ÑÑΓ á»»áαáΓ¡δ⌐ αÑú¿ßΓα, ß«ñÑন¼«Ñ ¬«Γ«α«ú«
- π¬áºδóáÑΓ ¡á ß«ßΓ«∩¡¿Ñ ßσѼ «íαáΓ¡«ú« σ«ñá ½πτá. Åα«óÑα∩∩
- ß«ñÑন¼«Ñ φΓ«ú« αÑú¿ßΓαá, »α«úαá¼¼á ¼«ªÑΓ «ßπΘÑßΓó½∩Γ∞ ñ«ßΓπ» ¬
- ó¿ñÑ«»á¼∩Γ¿ Γ«½∞¬« ó »α«¼ÑªπΓ¬¿ óαѼѡ¿, ß««ΓóÑΓßΓóπεΘ¿Ñ
- «íαáΓ¡«¼π σ«ñπ ½πτá, τΓ« »«ºó«½∩ÑΓ ¿ºíѪáΓ∞ 󫺡¿¬¡«óÑ¡¿∩
- "ß¡Ñúá". Åα«óÑα¬á ß«ñÑন¼«ú« φΓ«ú« αÑú¿ßΓαá ñ«½ª¡á
- «ßπΘÑßΓó½∩Γ∞ß∩ ºá ñ«ßΓáΓ«τ¡« ¬«α«Γ¬¿⌐ »α«¼ÑªπΓ«¬ óαѼѡ¿. àß½¿
- óδ »«»δΓáÑΓÑß∞ «ßπΘÑßΓó¿Γ∞ ÑÑ ¿º »α«úαá¼¼δ ¡á ∩ºδ¬Ñ óδß«¬«ú«
- πα«ó¡∩ (¡á»α¿¼Ñα, æ¿), Γ« «¡á αáí«ΓáΓ∞ ¡Ñ íπñÑΓ, »«ß¬«½∞¬π óαѼ∩
- ¡á »α«óÑα¬π »αÑóδß¿Γ ó φΓ«¼ ß½πτáÑ óαѼ∩ «íαáΓ¡«ú« σ«ñá ½πτá. ê
- «Γ "ß¡Ñúá" óδ ¡Ñ ¿ºíáó¿ΓÑß∞.
-
- Åα«í½Ñ¼á ¼«ªÑΓ íδΓ∞ αÑΦÑ¡á Γ«½∞¬« ß »«¼«Θ∞ε ∩ºδ¬á
- áßßѼí½Ñαá. ìỿßá¡¡á∩ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá »α«úαá¼¼á ¼«ªÑΓ
- ñ«ª¿ñáΓ∞ß∩ »Ñα¿«ñá «íαáΓ¡«ú« σ«ñá ½πτá, »α«ñ«½ª¿Γѽ∞¡«ßΓ∞
- ¬«Γ«α«ú« ñ«ßëëτ¡á ñ½∩ τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿ ß¿¼ó«½á ó »á¼∩Γ∞. ƒºδ¬
- áßßѼí½Ñαá »«ºó«½∩ÑΓ ß«ºñáΓ∞ »α«úαá¼¼π, ¬«Γ«αá∩ íπñÑΓ óδ»«½¡∩Γ∞
- φΓ¿ ñÑ⌐ßΓó¿∩ ñ«ßΓáΓ«τ¡« íδßΓα«, τΓ«íδ ß««ΓóÑΓßΓó«óáΓ∞ ΓѼ
- «úαá¡¿τÑ¡¿∩¼ »« óαѼѡ¿, ¬«Γ«αδÑ ¡á¬½áñδóáεΓß∩ ó¿ñѫ߿ßΓѼ«⌐.
-
- çừ¼¡¿ΓÑ, τΓ« ¬«¡Γα«½½Ñαδ îÇ ¿ EGA ¿ºíáó½∩εΓ «Γ
- ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¿ß»«½∞º«óá¡¿∩ Γᬫú« α«ñá áßßѼí½Ñα¡«⌐ »α«úαá¼¼δ.
- Ä»Ñαᵿ¿ τΓÑ¡¿∩ ß¿¼ó«½«ó ¿º ó¿ñÑ«»á¼∩Γ¿ ¿ ºá»¿ß¿ ó ó¿ñÑ«»á¼∩Γ∞
- íπñπΓ óδ»«½¡∩Γ∞ß∩ íδßΓαÑÑ »α¿ ¿ß»«½∞º«óá¡¿¿ φΓ¿σ ¬«¡Γα«½½Ñα«ó. ì«
- φΓá áßßѼí½Ñα¡á∩ »α«úαá¼¼á ∩ó½∩ÑΓß∩ ¡Ñ«íσ«ñ¿¼«⌐ »α¿ ¿ß»«½∞º«óá¡¿¿
- ¬«¡Γα«½½Ñαá CGA ó ß¿¼ó«½∞¡«¼ αѪ¿¼Ñ (Ñß½¿, ¬«¡Ñτ¡«, óδ ¡Ñ ¿¼ÑÑΓÑ
- ªÑ½á¡¿∩ ¡áí½εñáΓ∞ "ß¡Ñú" ¡á φ¬αá¡Ñ).
-
- éá¼ ¡Ñ«íσ«ñ¿¼« º¡áΓ∞, τΓ« ¡Ñ¬«Γ«αδÑ Γᬠ¡áºδóáѼδÑ
- "ß«ó¼ÑßΓ¿¼δÑ ó¿ñÑ«¬«¡Γα«½½Ñαδ" ∩ó½∩εΓß∩ ¡Ññ«ßΓáΓ«τ¡« φΣΣÑ¬Γ¿ó¡δ¼¿
-
- - 10 -
- ñ½∩ IBM Éæ óß½ÑñßΓó¿Ñ »α«í½Ñ¼δ ß ß¿ú¡á½«¼ «íαáΓ¡«ú« σ«ñá ½πτá.
- Æá¬Γ«óá∩ τáßΓ«Γá 4,77 îâµ »α«µÑßß«αá 8088 ∩ó½∩ÑΓß∩ ß½¿Φ¬«¼
- ¡¿º¬«⌐, ¿ »α«ñ«½ª¿Γѽ∞¡«ßΓ∞ ß¿ú¡á½á, ß««ΓóÑΓßΓóπεΘÑú« ß«ßΓ«∩¡¿ε
- «íαáΓ¡«ú« σ«ñá ½πτá, ∩ó½∩ÑΓß∩ ß½¿Φ¬«¼ ¬«α«Γ¬«⌐. Åα¿ ¿ß»«½∞º«óá¡¿¿
- φΓ«ú« ß¿ú¡á½á ó »α«úαá¼¼áσ ¡á áßßѼí½ÑαÑ π¡¿τΓ«ª¿Γ∞ óÑß∞ "ß¡Ñú"
- ¡á φ¬αá¡Ñ ¡Ñ πñáÑΓß∩. Å«φΓ«¼π Γá¬¿Ñ ó¿ñÑ«¬«¡Γα«½½Ñαδ »α¿¼Ñ¡∩εΓß∩
- «íδτ¡« ó Å¥éî ß í«½ÑÑ óδß«¬«⌐ Γá¬Γ«ó«⌐ τáßëë⌐ »α«µÑßß«αá,
- Γᬿσ, ¬á¬ IBM AT, ¿½¿ ¿ß»«½∞ºπεΘ¿σ á¬ßѽÑαáΓ«α ñ½∩ π߬«αÑ¡¿∩
- óδ»«½¡Ñ¡¿∩ ¼áΦ¿¡¡δσ ¬«¼á¡ñ.
-
- ì¿ªÑ »α¿ó«ñ¿Γß∩ «»¿ßá¡¿Ñ ñóπσ Σπ¡¬µ¿⌐ ¿º ¿ßσ«ñ¡«ú« ¼«ñπ½∩
- ibmpc.c, »«½¡á∩ ¿¡Σ«α¼áµ¿∩ « ¬«Γ«α«¼ ß«ñÑনΓß∩ ó αáºñÑ½Ñ 4. ¥Γ¿
- Σπ¡¬µ¿¿ ¡á»¿ßá¡δ ¡á ∩ºδ¬Ñ æ¿, ¡« ó¬½ετáεΓ Σαáú¼Ñ¡Γδ ¡á ∩ºδ¬Ñ
- áßßѼí½Ñαá, τΓ« ñ«»π߬áÑΓß∩ ¬«¼»¿½∩Γ«α«¼ Æπαí« æ¿. ä½∩ Γ«ú«
- τΓ«íδ ¿ß»«½∞º«óáΓ∞ φΓ¿ Σπ¡¬µ¿¿, ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ Γαá¡ß½∩Γ«α ß
- ∩ºδ¬á áßßѼí½Ñαá MASM. ¥Γ¿ Σπ¡¬µ¿¿ αáí«ΓáεΓ ¬«ααÑ¬Γ¡« ß ½εíδ¼
- ó¿ñÑ«¬«¡Γα«½½Ñα«¼ ¿ π¡¿τΓ«ªáεΓ "ß¡Ñú" ó ß½πτáÑ ¿ß»«½∞º«óá¡¿∩
- ¬«¡Γα«½½Ñαá CGA.
-
- éá¼ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ óδºδóáΓ∞ φΓ¿ Σπ¡¬µ¿¿ ¿º ßó«¿σ
- »α«úαá¼¼, «¡¿ ¿ß»«½∞ºπεΓß∩ »α«úαἼἿ ñ½∩ αáí«Γδ ß "«¬¡á¼¿" ¿º
- φΓ«ú« αáºñѽá. éδ ¼«ªÑΓÑ «ñ¡á¬« ºáσ«ΓÑΓ∞ ¼«ñ¿Σ¿µ¿α«óáΓ∞ φΓ¿
- Σπ¡¬µ¿¿, Ñß½¿ ¿ß»«½∞ºπÑΓÑ ¬«¡Γα«½½Ñαδ îÇ ¿ EGA ¿½¿ Ñß½¿ π óáß ¡ÑΓ
- »α«úαá¼¼δ îÇSM. àß½¿ óδ »¿ΦÑΓÑ »α«úαá¼¼δ ¿ »α¿ φΓ«¼ ¡Ñ¿ºóÑßΓ¡«,
- ¬Γ« ¿ ¡á ¬á¬«⌐ á»»áαáΓ¡«⌐ ¬«¡Σ¿úπαᵿ¿ íπñÑΓ ¿σ ¿ß»«½∞º«óáΓ∞, Γ«
- ñ«½ª¡δ «ßΓáó¿Γ∞ φΓ¿ Σπ¡¬µ¿¿ íѺ ¿º¼Ñ¡Ñ¡¿⌐ ¿ ¿ß»«½∞º«óáΓ∞
- Γαá¡ß½∩Γ«αδ Æπαí« æ¿ ¿ MASM ñ½∩ ¿σ Γαá¡ß½∩µ¿¿.
-
-
- vpoke(unsigned vseg, unsigned adr, unsigned chr)
- ------------------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ ºá¡«ß¿Γ íá⌐Γ ß ¬«ñ«¼ ß¿¼ó«½á ¿ íá⌐Γ ß Ñú«
- áΓα¿íπΓἿ ó ó¿ñÑ«»á¼∩Γ∞. Åáαá¼ÑΓα adr »αÑñßΓáó½∩ÑΓ ß«í«⌐
- ß¼ÑΘÑ¡¿Ñ ó íá⌐Γáσ «Γ ¡áτá½á ßÑú¼Ñ¡Γá ó¿ñÑ«»á¼∩Γ¿: 0 ß««ΓóÑΓßΓóπÑΓ
- »Ñαó«¼π ß¿¼ó«½π, 2 - óΓ«α«¼π ¿ Γ.ñ. Åáαá¼ÑΓα chr ß«ñÑαª¿Γ íá⌐Γ
- áΓα¿íπΓ«ó ß¿¼ó«½á (ßΓáαΦ¿⌐) ¿ ASCII-¬«ñ ß¿¼ó«½á. Åáαá¼ÑΓα vseg
-
- - 11 -
- «»αÑñѽ∩ÑΓ áñαÑß ßÑú¼Ñ¡Γá ó¿ñÑ«»á¼∩Γ¿ (0xB800 ñ½∩ CGA, 0xB000 ñ½∩
- îÇ). ¥Γá Σπ¡¬µ¿∩ «ßπΘÑßΓó½∩ÑΓ óδó«ñ ß¿¼ó«½á ß »α«óÑᬫ⌐ ¡á
- «íαáΓ¡δ⌐ σ«ñ ½πτá, Γá¼, úñÑ φΓ« ¡Ñ«íσ«ñ¿¼«.
-
-
- int vpeak(unsigned vseg,unsigned adr)
- -------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¬«ñ ß¿¼ó«½á ¿ Ñú« áΓα¿íπΓδ (ßΓáαΦ¿⌐
- íá⌐Γ), αẼÑΘÑ¡¡δÑ ó ó¿ñÑ«»á¼∩Γ¿ »« áñαÑßπ vseg:adr, Γ« ÑßΓ∞
- óδ»«½¡∩εΓ τΓÑ¡¿Ñ ß¿¼ó«½á ß »α«óÑᬫ⌐ ¡á «íαáΓ¡δ⌐ σ«ñ ½πτá, úñÑ
- φΓ« ¡Ñ«íσ«ñ¿¼«.
-
-
-
- çᬽετÑ¡¿Ñ
- -----------------------------------------------------------------
-
- 꺽«ªÑ¡¡δÑ ßóÑñÑ¡¿∩ «í áασ¿ΓѬΓπαÑ ó¿ñѫ߿ßΓѼδ IBM PC ¿
- «ß¡«ó¡δσ »α¿¡µ¿»áσ αáí«Γδ ß φ¬αá¡¡δ¼¿ "«¬¡á¼¿" »«ºó«½∩εΓ »«¡∩Γ∞
- »αÑñßΓáó½Ñ¡¡δÑ ó αáºñÑ½Ñ 6 ¿ßσ«ñ¡δÑ ΓѬßΓδ í¿í½¿«ΓѬ¿ Σπ¡¬µ¿⌐
- π»αáó½Ñ¡¿∩ "«¬¡á¼¿", πñ«ó½ÑΓó«α∩εΘ¿Ñ ΓαÑí«óá¡¿∩¼ ¬«¼»¿½∩Γ«αá
- Æπαí« æ¿. êß»«½∞º«óá¡¿Ñ φΓ¿σ Σπ¡¬µ¿⌐ «í½Ñúτ¿Γ óá¼
- »α«úαá¼¼¿α«óá¡¿Ñ ó¿ñÑ«¿º«íαáªÑ¡¿⌐. éδ ¼«ªÑΓÑ ß¼Ñ½« »α¿¼Ñ¡∩Γ∞ φΓ¿
- Σπ¡¬µ¿¿, ¿ ߬«¡µÑ¡Γα¿α«óáΓ∞ ßó«Ñ ó¡¿¼á¡¿Ñ ¡á »α«í½Ñ¼áσ, ¬«Γ«αδÑ
- ߻ѵ¿Σ¿τ¡δ ñ½∩ óáΦÑ⌐ »α¿¬½áñ¡«⌐ ºáñáτ¿.
-
-
- â½áóá 6
- -------
-
- ü¿í½¿«ΓÑ¬á «¬«¡¡δσ Σπ¡¬µ¿⌐
- -----------------------------------------------------------------
-
- Åα«úαá¼¼δ, «»¿ßá¡¡δÑ ó φΓ«⌐ ¿ ¡Ñ߬«½∞¬¿σ »«ß½ÑñπεΘ¿σ ú½áóáσ,
- »αÑñßΓáó½∩εΓ í¿í½¿«ΓÑ¬π «¬«¡¡δσ Σπ¡¬µ¿⌐, ¬«Γ«αá∩ »«ññÑনóáÑΓ
- Φ¿α«¬¿⌐ ñ¿á»áº«¡ φ¬αá¡¡δσ «¬«¡¡δσ «»Ñαᵿ⌐. öπ¡¬µ¿¿ »«ñαáºñѽѡδ
-
- - 12 -
- ¡á »«ñß¿ßΓѼδ, ¿ß»«½∞º«óá¡¿Ñ ¬«Γ«αδσ »«ºó«½∩ÑΓ «αúá¡¿º«óáΓ∞ ¼Ñ¡ε,
- ¬«¡ΓѬßΓ¡«-π»αáó½∩ѼδÑ »«ñ߬Ậ¿, αÑñá¬Γ¿α«óá¡¿Ñ ΓѬßΓá ¿
- Σ«α¼áΓ¿α«óá¡¿Ñ ñá¡¡δσ ó »α¿¬½áñ¡δσ ß¿ßΓѼáσ. ¥Γ¿ »«ñß¿ßΓѼδ
- »«ññÑনóáεΓß∩ «íΘѵѽÑó«⌐ «¬«¡¡«⌐ í¿í½¿«ΓѬ«⌐, ¬«Γ«αá∩ ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ß∩ ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ ΓᬠªÑ, ¬á¬ ¿ »«ñß¿ßΓѼδ.
- é φΓ«⌐ ú½áóÑ «»¿ßδóáÑΓß∩ «íΘѵѽÑóá∩ í¿í½¿«ΓÑ¬á «¬«¡¡δσ Σπ¡¬µ¿⌐.
-
- Ĭ«¡¡δÑ Σπ¡¬µ¿¿, «»¿ßá¡¡δÑ ó ñá¡¡«⌐ ú½áóÑ, ¼«úπΓ »α¿¼Ñ¡∩Γ∞ß∩
- ñ½∩ «αúá¡¿ºáµ¿¿ «¬«¡ ó «ñ¡«⌐ ¿º ñóπσ ¬«¡Σ¿úπαᵿ⌐: ßΓѬ«ó«⌐ ¿
- ß½«Ñ¡«⌐; «ñ¡á ¬«¡Σ¿úπαᵿ∩ ∩ó½∩ÑΓß∩ ß Γ«τ¬¿ ºαÑ¡¿∩ ¿ß»«½∞ºπεΘÑ⌐
- ¿σ »α«úαá¼¼δ »«ñ¼¡«ªÑßΓó«¼ ñαπú«⌐. 潫ѡδÑ «¬¡á «í½áñáεΓ í«½∞Φ¿¼¿
- 󫺼«ª¡«ßΓ∩¼¿, τѼ ßΓѬ«óδÑ, «ñ¡á¬« ßΓѬ«óδÑ í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ, Γ«
- ÑßΓ∞ óδñáτá ¡á φ¬αá¡ ¿ π¡¿τΓ«ªÑ¡¿Ñ ¿σ »α«¿ßσ«ñ¿Γ íδßΓαÑÑ.
- Åα«úαá¼¼á ¼«ªÑΓ íδΓ∞ ßó∩ºá¡á ½¿í« ß« ßΓѬ«ó묨, ½¿í« ß« ß½«Ñ¡δ¼¿
- «¬«¡¡δ¼¿ Σπ¡¬µ¿∩¼¿, ¡« ¡Ñ ß ΓѼ¿ ¿ ñαπú¿¼¿ «ñ¡«óαѼѡ¡«.
-
- Åα¿ ¬«¼»¿½∩µ¿¿ «¬«¡¡δσ Σπ¡¬µ¿⌐, óδ ñ«½ª¡δ »α¿¡∩Γ∞ αÑΦÑ¡¿Ñ «
- Γ«¼, ¬á¬πε ¿¼Ñ¡¡« «¬«¡¡πε ¬«¡Σ¿úπαáµ¿ε »α¿¼Ñ¡¿Γ∞. ä½∩ ßΓѬ«óδσ
- «¬«¡ «»αÑñѽ∩ÑΓß∩ »ÑαѼѡ¡á∩ óαѼѡ¿ ¬«¼»¿½∩µ¿¿ FASTWINDOWS, ñ½∩
- ß½«Ñ¡δσ «¬«¡ «¡á πñá½∩ÑΓß∩. Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ íδΓ∞
- ßó∩ºá¡á ß ½εí«⌐ í¿í½¿«ΓѬ«⌐ ñ« ΓÑσ »«α, »«¬á «¡á ¡Ñ ¿ß»«½∞ºπÑΓ
- 󫺼«ª¡«ßΓ¿, »«ññÑনóáѼδÑ Γ«½∞¬« ñ½∩ ß½«Ñ¡δσ «¬«¡. ÆÑ
- »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ ó«º¼«ª¡«ßΓ¿
- ¿ß¬½ετ¿Γѽ∞¡« ß½«Ñ¡δσ «¬«¡, ñ«½ª¡δ íδΓ∞ ßó∩ºá¡δ ß í¿í½¿«ΓѬ«⌐
- «¬«¡¡δσ Σπ¡¬µ¿⌐, ¬«Γ«αá∩ íδ½á ¬«¼»¿½¿α«óá¡á íѺ «»αÑñѽѡ¿∩
- FASTWINDOWS.
-
-
-
- æΓѬ«óδÑ «¬¡á
- -----------------------------------------------------------------
-
- è«¡Σ¿úπαᵿ∩ ßΓѬ«óδσ «¬«¡ »αÑñ»«½áúáÑΓ, τΓ« ½εíá∩
- óδ»«½¡∩Ѽá∩ óἿ ß «¬¡«¼ «»Ñαᵿ∩ (ºá»¿ß∞ ó ¡Ñú« ΓѬßΓá,
- ¿º¼Ñ¡Ñ¡¿Ñ µóÑΓá, π¡¿τΓ«ªÑ¡¿Ñ Ñú« ¿ Γ.ñ.) »α«¿ºó«ñ¿Γß∩, ¬«úñá «¬¡«
- ∩ó½∩ÑΓß∩ »«½¡«ßΓ∞ε ó¿ñ¿¼δ¼ »«½∞º«óáΓѽε. Å«½¡á∩ ó¿ñ¿¼«ßΓ∞
- «º¡áτáÑΓ, τΓ« ¡¿ «ñ¡á τáßΓ∞ «¬¡á ¡Ñ ¡á¬αδΓá ñαπú¿¼ «¬¡«¼ ¿ τΓ«
-
- - 13 -
- «¬¡« ¡Ñ ߬αδΓ« Σπ¡¬µ¿Ñ⌐ hide_window (« ¬«Γ«α«⌐ íπñÑΓ ß¬áºá¡«
- ¡¿ªÑ). è«úñá πßΓá¡«ó½Ñ¡« ßΓѬ«ó«Ñ «¬¡«, «¬«¡¡«Ñ »α«úαá¼¼¡«Ñ
- «íÑß»ÑτÑ¡¿Ñ ßΓα«¿Γ íπΣÑα ñ½∩ σαá¡Ñ¡¿∩ »αѪ¡Ñú« ß«ñÑন¼«ú«
- ó¿ñÑ«»á¼∩Γ¿, ¬«Γ«απε íπñÑΓ ºá¡¿¼áΓ∞ «¬¡«. é¿ñÑ«»á¼∩Γ∞ ß«σαá¡∩ÑΓß∩
- ó íπΣÑαÑ, á «¬¡« ºá»¿ßδóáÑΓß∩ ó ó¿ñÑ«»á¼∩Γ∞. Åα¿ óδ»«½¡Ñ¡¿¿ ½εíδσ
- «»Ñαᵿ⌐, ¼«ñ¿Σ¿µ¿απεΘ¿σ «¬¡«, óßÑ ¿º¼Ñ¡Ñ¡¿∩ óδ»«½¡∩εΓß∩
- ¡Ñ»«ßαÑñßΓóÑ¡¡« ó ó¿ñÑ«»á¼∩Γ¿, á »α«úαá¼¼¡«Ñ «íÑß»ÑτÑ¡¿Ñ
- »αÑñ»«½áúáÑΓ, τΓ« «¬¡« ∩ó½∩ÑΓß∩ »«½¡«ßΓ∞ε ó¿ñ¿¼δ¼. è«úñá «¬¡«
- π¡¿τΓ«ªáÑΓß∩, ß«ñÑন¼«Ñ σαá¡∩ΘÑú« Ñú« íπΣÑαá ºá»¿ßδóáÑΓß∩
- «íαáΓ¡« ó ó¿ñÑ«»á¼∩Γ∞, ó«ßßΓá¡áó½¿óá∩ Γᬿ¼ «íαẫ¼ ó¿ñÑ««íαáº
- »á¼∩Γ¿ ¬ ß«ßΓ«∩¡¿ε ñ« «íαẫóá¡¿∩ «¬¡á.
-
- éδ íπñÑΓÑ «íδτ¡« «íαáΘáΓ∞ß∩ Γ«½∞¬« ¬ ßΓѬ«ó«¼π «¬¡π,
- «íαẫóá¡¡«¼π »«ß½Ññ¡¿¼. àß½¿ óδ ß¡áτá½á ß«ºñ὿ «¬¡« Ç, á ºáΓѼ
- «¬¡« é, ¬«Γ«α«Ñ ºá¬αδóáÑΓ τáßΓ∞ «¬¡á Ç, Γ« »α¿ ºá»¿ß¿ ΓѬßΓá ó
- «¬¡« Ç ¼«ªÑΓ ß½πτ¿Γ∞ß∩, τΓ« τáßΓ∞ ΓѬßΓá »«»áñÑΓ ó τáßΓ∞ «¬¡á é,
- ºá¬αδóáεΘπε «¬¡« Ç. äá½ÑÑ, Ñß½¿ óδ π¡¿τΓ«ª¿ΓÑ «¬¡« A ñ«
- π¡¿τΓ«ªÑ¡¿∩ «¬¡á é, Γ« τáßΓ∞ íπΣÑαá ß«σαá¡Ñ¡¿∩ «¬¡á Ç
- ºá»¿ΦÑΓß∩ ó ¡áτὫ τáßΓ¿ «¬¡á é.
-
- ü«½∞Φ¿¡ßΓó« ¬«¼¼ÑατÑ߬¿σ «¬«¡¡δσ »á¬ÑΓ«ó »«ññÑনóáÑΓ Γ«½∞¬«
- ßΓѬ«óδÑ «¬¡á, »«ß¬«½∞¬π í«½∞Φ¿¡ßΓó« »α¿½«ªÑ¡¿⌐, ¿ß»«½∞ºπεΘ¿σ
- «¬¡á, ¼«úπΓ πß»ÑΦ¡« Σπ¡¬µ¿«¡¿α«óáΓ∞ ó ßαÑñÑ ßΓѬ«óδσ «¬«¡.
- Äíδτ¡«⌐ »αá¬Γ¿¬«⌐ ó »α¿½«ªÑ¡¿∩σ ∩ó½∩ÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ «¬¡á,
- «Γ¬αδΓ«ú« »«ß½Ññ¡¿¼, ¿ π¡¿τΓ«ªÑ¡¿Ñ «¬«¡ ó »«α∩ñ¬Ñ, «íαáΓ¡«¼ ¿σ
- ß«ºñá¡¿ε. Æá¬¿Ñ »α¿½«ªÑ¡¿∩ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ ßΓѬ«óδÑ «¬¡á
- ¿º-ºá »αÑ¿¼πΘÑßΓó ¿σ Σπ¡¬µ¿«¡¿α«óá¡¿∩.
-
- Ĭ«¡¡δÑ «»Ñαᵿ¿, «»¿ßá¡¡δÑ ó ñá¡¡«⌐ ¬¡¿úÑ, »«ºó«½∩εΓ óá¼
- ß«ºñáóáΓ∞ «ñ¡« ¿½¿ í«½ÑÑ «¬«¡ ¿ ºáΓѼ «Γ¡«ß¿Γ∞ αẽ¿τ¡δÑ «»Ñαᵿ¿
- ¬ «ñ¡«¼π ¿º ß«ºñá¡¡δσ «¬«¡. éδ ¼«ªÑΓÑ «íαáΘáΓ∞ß∩ ¬ ¬«¡¬αÑΓ¡«¼π
- «¬¡π ¿½¿ ¿ß»«½∞º«óáΓ∞ »πßΓπε ߻ѵ¿Σ¿¬áµ¿ε ñ½∩ ß««íΘÑ¡¿∩ óδºóá¡¡«⌐
- Σπ¡¬µ¿¿ « ßó«Ñ¼ ¡á¼ÑαÑ¡¿¿ óδ»«½¡¿Γ∞ «»Ñαᵿε ó «¬¡Ñ, ß«ºñá¡¡«¼
- »«ß½Ññ¡¿¼. ¥Γ« ß«ú½áΦÑ¡¿Ñ ¿ß»«½∞ºπÑΓß∩ ¬á¬ ñ½∩ ßΓѬ«óδσ, Γᬠ¿
- ñ½∩ ß½«Ñ¡δσ «¬«¡, «ñ¡á¬« »«½∞º«óáΓѽ¿ ßΓѬ«óδσ «¬«¡¡δσ Σπ¡¬µ¿⌐
- ñ«½ª¡δ íδΓ∞ πóÑαÑ¡δ, τΓ« ½εí«Ñ «¬¡«, ¬ ¬«Γ«α«¼π «¡¿ «íαáΘáεΓß∩,
- ½¿í« ß«ºñá¡« »«ß½Ññ¡¿¼, ½¿í« »«½¡«ßΓ∞ε ó¿ñ¿¼« ¡á φ¬αá¡Ñ.
-
- - 14 -
-
-
-
- 潫ѡδÑ «¬¡á
- -----------------------------------------------------------------
-
- 潫ѡδÑ «¬¡á «í½áñáεΓ ú«αáºñ« í«½∞ΦÑ⌐ ú¿í¬«ßΓ∞ε, τѼ
- ßΓѬ«óδÑ, ¬ Γ«¼π ªÑ «¡¿ »αÑñ«ßΓáó½∩εΓ »«½∞º«óáΓѽε ú«αáºñ« í«½∞ΦÑ
- 󫺼«ª¡«ßΓÑ⌐ »« ß«ºñá¡¿ε αẽ¿τ¡δσ «¬«¡¡δσ ¿¡ΓÑαΣÑ⌐ß«ó. è«úñá
- ß½«Ñ¡«Ñ «¬¡« ß«ºñá¡«, ½εíá∩ «¬«¡¡á∩ «»Ñαᵿ∩ ¼«ªÑΓ íδΓ∞
- áñαÑß«óá¡á Ѽπ, ¡Ñºáó¿ß¿¼« «Γ Ñú« ó¿ñ¿¼«ßΓ¿ ¿½¿ í½¿º«ßΓ¿ ¬ ñαπú¿¼
- «¬¡á¼. é ñ«»«½¡Ñ¡¿Ñ ¬ «íδτ¡«¼π ¡áí«α𠫬«¡¡δσ «»Ñαᵿ⌐ ß½«Ñ¡δÑ
- «¬¡á ¼«úπΓ »ÑαѼÑΘáΓ∞ß∩ ó ñóπ¼Ñα¡«⌐ »½«ß¬«ßΓ¿ φ¬αá¡á ¿ ¼«úπΓ
- óδñó¿úáΓ∞ß∩ ¡á »ÑαÑñ¡¿⌐ ¿½¿ πí¿αáΓ∞ß∩ ¡á ºáñ¡¿⌐ »½á¡δ ó ß½«∩σ
- ß«ºñá¡¡δσ «¬«¡.
-
- è«úñá ß«ºñá¡« ß½«Ñ¡«Ñ «¬¡«, αáß»αÑñѽ∩ÑΓß∩ íπΣÑα ß«σαá¡Ñ¡¿∩
- ó¿ñѫ߫ñÑন¼«ú«, ¡« «¬¡« ¡Ñ «Γ«íαáªáÑΓß∩. üπΣÑα ß«σαá¡Ñ¡¿∩
- ¿¡¿µ¿á½¿º¿απÑΓß∩ ó¿ñÑ«º¡áτÑ¡¿∩¼¿, ¬«Γ«αδÑ «¬¡« ¼«ú½« íδ
- ß«ñÑαªáΓ∞, Ñß½¿ íδ «¡« í佫 ó¿ñ¿¼δ¼. ïεíδÑ »«ß½ÑñπεΘ¿Ñ «»Ñαᵿ¿,
- »α«¿ºó«ñ¿¼δÑ ó φΓ«¼ «¬¡Ñ, »«¬á «¡« ¡Ñó¿ñ¿¼«, »α«¿ºó«ñ∩Γß∩ ó
- íπΣÑαÑ ß«σαá¡Ñ¡¿∩.
-
- è«úñá ß½«Ñ¡«Ñ «¬¡« «Γ«íαáªáÑΓß∩, ó¿ñÑ«»á¼∩Γ∞ ¿ íπΣÑα
- ß«σαá¡Ñ¡¿∩ «í¼Ñ¡¿óáεΓß∩ ß«ñÑন¼δ¼. çáΓѼ, ñ« ΓÑσ »«α »«¬á «¬¡«
- ∩ó½∩ÑΓß∩ »«½¡«ßΓ∞ε ó¿ñ¿¼δ¼ (¡Ñ ºá¬αδΓδ¼ »«½¡«ßΓ∞ε ¿½¿ τáßΓ¿τ¡«
- ñαπú¿¼ «¬¡«¼), ½εíδÑ «»Ñαᵿ¿ »α«¿ºó«ñ∩Γß∩ ß ó¿ñÑ«»á¼∩Γ∞ε, á ¡Ñ ß
- íπΣÑα«¼ ß«σαá¡Ñ¡¿∩. è«úñá «ñ¡« ¿ í«½ÑÑ ñαπú¿σ «¬«¡ »«¬αδóáεΓ
- áñαÑßπѼ«Ñ «¬¡« »«½¡«ßΓ∞ε ¿½¿ τáßΓ¿τ¡«, «»αÑñѽѡ¿Ñ «í½áßΓ¿
- ¿º¼Ñ¡Ñ¡¿∩ ∩ó½∩ÑΓß∩ í«½ÑÑ ß½«ª¡δ¼. ä½∩ ΓÑσ τáßΓÑ⌐ «¬¡á, ¬«Γ«αδÑ
- ∩ó½∩εΓß∩ ó¿ñ¿¼δ¼¿, ¿º¼Ñ¡Ñ¡¿Ñ »α«¿ºó«ñ¿Γß∩ ó ó¿ñÑ«»á¼∩Γ¿. Äñ¡á¬«
- ñ½∩ «í½áßΓÑ⌐, ºá¬αδΓδσ ñαπú¿¼¿ «¬¡á¼¿, ¿º¼Ñ¡Ñ¡¿Ñ »α«¿ºó«ñ¿Γß∩ ó
- íπΣÑαÑ ß«σαá¡Ñ¡¿∩ »«¬αδóáεΘÑú« «¬¡á. ū߬«½∞¬π «¬¡« ¼«ªÑΓ ¿¼ÑΓ∞
- αẽ¿τ¡δÑ τáßΓ¿, ºá¬αδΓδÑ ¡Ñ߬«½∞¬¿¼¿ ñαπú¿¼¿ «¬¡á¼¿, Γ« á½ú«α¿Γ¼
- «»αÑñѽѡ¿∩ ¼ÑßΓá, úñÑ ñ«½ª¡« íδΓ∞ ßñѽᡫ ¿º¼Ñ¡Ñ¡¿Ñ, «í∩ºá¡
- ß¡áτá½á »α«ß¼«ΓαÑΓ∞ óßÑ «¬¡á, ß«ºñá¡¡δÑ »«ºªÑ ñá¡¡«ú«, ß µÑ½∞ε
- πßΓá¡«ó½Ñ¡¿∩ Σá¬Γá óδ»«½¡Ñ¡¿∩ ¿º¼Ñ¡Ñ¡¿∩ ó «í½áßΓ¿, »«¬αδΓ«⌐
-
- - 15 -
- ß½ÑñπεΘ¿¼ «¬¡«¼ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿. àß½¿ Γá¬«Ñ «¬¡« ¡á⌐ñÑ¡«, Γ«
- ¿º¼Ñ¡Ñ¡¿Ñ ºá»¿ßδóáÑΓß∩ ó Ñú« íπΣÑα ß«σαá¡Ñ¡¿∩. àß½¿ ¡¿ «ñ¡« «¬¡«
- ¡Ñ ºá¬αδóáÑΓ ¼«ñ¿Σ¿µ¿απѼδ⌐ πτáßΓ«¬, Γ« ¿º¼Ñ¡Ñ¡¿Ñ »α«¿ºó«ñ¿Γß∩ ó
- ó¿ñÑ«»á¼∩Γ¿.
-
- Éáßß¼«Γα¿¼ α¿ßπ¡«¬ 6.1. Æα¿ «¬¡á αáß»«½«ªÑ¡δ Γá¬, τΓ« τáßΓ∞
- «¬¡á Ç ó¿ñ¿¼á, τáßΓ∞ ºá¬αδΓá «¬¡«¼ é ¿ τáßΓ∞ - «¬¡«¼ æ. é íπΣÑαáσ
- ß«σαá¡Ñ¡¿∩ ¬áªñ«ú« «¬¡á óδ ¼«ªÑΓÑ ó¿ñÑΓ∞ úαá¡¿µδ τáßΓÑ⌐ ñαπú¿σ
- «¬«¡, ¬«Γ«αδÑ ºá¬αδΓδ.
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ .┌───────────┐ │
- │ . │ │ │
- │ . ├───────────┤ üπΣÑα │
- │ . │ │ ß«σαá¡Ñ¡¿∩ é │
- │ . │ │ │
- │ . │ │ │
- │ . └───────────┘ │
- │ . . │
- │ . │
- │ . . │
- │ ┌──────────┐ │
- │ ┌────┤ B ├────┐ . │
- │ │ A │ │ │ . │
- │ │ │ ┌────┴────┴───┐. . │
- │ │ │ │ C │. . │
- │ │ └─────│ │ . │
- │ └──────────│ │ . │
- │ │ │ . │
- │ │ │ ┌──────┬──────────┬───┐ │
- │ └─────────────┘ │ │ │ │ │
- │ . │ │ │ │ │
- │ . │ │ │ │ │
- │ . ├──────┘ │ │ │
- │ . ├─────────────────┘ │ │
- │ . └─────────────────────┘ │
-
- - 16 -
- │ üπΣÑα ß«σαá¡Ñ¡¿∩ æ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 6.1. Æα¿ ß½«Ñ¡δσ »ÑαѬαδóáεΘ¿σß∩ «¬¡á.
-
-
- àß½¿ óδ ºá»¿Φ¿ΓÑ ΓѬßΓ«óπε ßΓ᫬π "now is the time" ó «¬¡«
- Ç, ΓѬßΓ íπñÑΓ ¡á»αáó½Ñ¡ ó Γα¿ αẽ¿τ¡δσ ¼ÑßΓá. ÉѺπ½∞ΓáΓ »«¬áºá¡
- ¡á α¿ßπ¡¬Ñ 6.2. Æá¬ ¬á¬ τáßΓ∞ «¬¡á Ç, úñÑ ºá»¿ßá¡« "now",
- ∩ó½∩ÑΓß∩ ó¿ñ¿¼«⌐, Γ« ß½«ó« ºá»¿ßδóáÑΓß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ó
- ó¿ñÑ«»á¼∩Γ∞ ¿ ¼«ªÑΓ íδΓ∞ »α«τ¿Γá¡« »«½∞º«óáΓѽѼ. 潫óá "is the"
- ∩ó½∩εΓß∩ τáßΓ∞ε «¬¡á Ç, ¬«Γ«αá∩ ºá¬αδΓá «¬¡«¼ é, »«φΓ«¼π φΓ¿
- ß½«óá ºá»¿ßδóáεΓß∩ ó íπΣÑα ß«σαá¡Ñ¡¿∩ «¬¡á é. 潫ó« "time"
- «¬áºδóáÑΓß∩ ó Γ«⌐ τáßΓ¿ «¬¡á Ç, ¬«Γ«αá∩ »«¬αδΓá «¬¡«¼ æ,
- ß½Ññ«óáΓѽ∞¡« "time" ºá»¿ßδóáÑΓß∩ ó íπΣÑα ß«σαá¡Ñ¡¿∩ «¬¡á æ
-
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ │
- │ │
- │ │
- │ . ┌─────────┐ │
- │ . ├─────────┤ │
- │ . │ is the │ üπΣÑα ß«σαá¡Ñ¡¿∩ é │
- │ . │ │ │
- │ ┌───────┐ └─────────┘ │
- │ ┌───────┤ B ├──────┐ . │
- │ │ A │ ┌──┴──────┴─┐. . │
- │ │ now │ │ C │. . │
- │ │ └────┤ │ . │
- │ └────────────┤ │ ┌─────┬────────┬──┐ │
- │ └───────────┘ │ │ time │ │ │
- │ . ├─────┘ │ │ │
- │ . ├──────────────┘ │ │
- │ . └─────────────────┘ │
-
- - 17 -
- │ üπΣÑα ß«σαá¡Ñ¡¿∩ æ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 6.2. 潫ѡδÑ «¬¡á ß ΓѬßΓ«¼.
-
-
- É¿ßπ¡«¬ 6.3. »«¬áºδóáÑΓ, τΓ« »α«¿ßσ«ñ¿Γ »α¿ π¡¿τΓ«ªÑ¡¿¿ «¬¡á
- é. ùáßΓ∞ «¬¡á Ç ¿º Ñú« íπΣÑαá ß«σαá¡Ñ¡¿∩ »«ßΓπ»áÑΓ ó
- ó¿ñÑ«»á¼∩Γ∞, ¿ ß½«ó« "is" ¼«ªÑΓ ΓÑ»Ñα∞ íδΓ∞ »α«τ¿Γá¡«
- »«½∞º«óáΓѽѼ. Äñ¡á¬«, »«ß¬«½∞¬π τáßΓ∞ «¬¡á é íδ½á »«¬αδΓá «¬¡«¼
- æ, Γ« τáßΓ∞ íπΣÑαá ß«σαá¡Ñ¡¿∩ «¬¡á é ¬«»¿απÑΓß∩ ó íπΣÑα
- ß«σαá¡Ñ¡¿∩ «¬¡á æ, ß½Ññ«óáΓѽ∞¡«, íπΣÑα ß«σαá¡Ñ¡¿∩ «¬¡á æ ΓÑ»Ñα∞
- ß«ñÑαª¿Γ ß½«óá "the time".
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ │
- │ │
- │ │
- │ ┌──────────────────────┐ │
- │ │ A ┌─────────┴──────┐ . │
- │ │ │ C │ . │
- │ │ now is │ │ . │
- │ │ │ │ . │
- │ └────────────┤ │ ┌───────────────────┬──┐ │
- │ └────────────────┘ │ the time │ │ │
- │ . │ │ │ │
- │ . │ │ │ │
- │ . ├───────────────────┘ │ │
- │ . └──────────────────────┘ │
- │ üπΣÑα ß«σαá¡Ñ¡¿∩ æ │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ßπ¡«¬ 6.3. ô¡¿τΓ«ªÑ¡¿Ñ ß½«Ñ¡«ú« «¬¡á.
-
-
- - 18 -
-
- ìѺáó¿ß¿¼« «Γ ¿ß»«½∞º«óá¡¿∩ ßΓѬ«óδσ ¿½¿ ß½«Ñ¡δσ «¬«¡,
- αáí«Γá ¿σ íπñÑΓ ºáó¿ßÑΓ∞ «Γ ΓαÑí«óá¡¿⌐ óáΦÑ⌐ ß¿ßΓѼδ. èáªñδ⌐
- »«ñσ«ñ ¿¼ÑÑΓ ßó«¿ »αÑ¿¼πΘÑßΓóá ¿ ¡Ññ«ßΓáΓ¬¿. àß½¿ óδ ¡áτ὿ ß«
- ßΓѬ«óδσ «¬«¡ ¿ «í¡áαπª¿½¿ »«ºªÑ, τΓ« óá¼ ¡πª¡δ ñ«»«½¡¿Γѽ∞¡δÑ
- ßó«⌐ßΓóá ß½«Ñ¡«⌐ «¬«¡¡«⌐ áασ¿ΓѬΓπαδ, óδ ¼«ªÑΓÑ óδ»«½¡¿Γ∞
- ¿º¼Ñ¡Ñ¡¿Ñ »πΓѼ »ÑαѬ«¼»¿½∩µ¿¿ «¬«¡¡δσ Σπ¡¬µ¿⌐ íѺ «»αÑñѽѡ¿∩
- FASTWINDOWS ¿ »ÑαÑαÑñá¬Γ¿α«óáΓ∞ ßó∩º¿ óáΦ¿σ »α«úαá¼¼.
-
-
-
- Ĭ«¡¡δÑ Σπ¡¬µ¿¿
- -----------------------------------------------------------------
-
- ¥Γ¿ Σπ¡¬µ¿¿ ó¬½ετÑ¡δ ó «¬«¡¡πε í¿í½¿«ΓѬπ. ä½∩ ¬áªñ«⌐
- Σπ¡¬µ¿¿ «»¿ßá¡δ ÑÑ ¡áº¡áτÑ¡¿Ñ ¿ ß»«ß«í »α¿¼Ñ¡Ñ¡¿∩. äá½ÑÑ
- »α¿ó«ñ∩Γß∩ »α¿¼Ñαδ ¿ß»«½∞º«óá¡¿∩ φΓ¿σ Σπ¡¬µ¿⌐.
-
-
- WINDOW *establish_window(x,y,h,w)
- ---------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ ß«ºñáÑΓ «¬¡«, ¡« ¡Ñ «Γ«íαáªáÑΓ Ñú«. (ä½∩ »«¬áºá
- «¬¡á ó«ß»«½∞ºπ⌐ΓÑß∞ Σπ¡¬µ¿Ñ⌐ display_window). Åáαá¼ÑΓαδ x ¿ y
- ∩ó½∩εΓß∩ ¬««αñ¿¡áΓἿ óÑασ¡Ñú« ½Ñó«ú« πú½á «¬¡á. ¥Γ¿ »áαá¼ÑΓαδ
- óδαáªáεΓß∩ ó ß¿¼ó«½∞¡δσ »«º¿µ¿∩σ φ¬αá¡á, úñÑ ¬««αñ¿¡áΓδ ½Ñó«ú«
- óÑασ¡Ñú« πú½á ßἫú« φ¬αá¡á αáó¡δ (0,0). Åáαá¼ÑΓαδ h ¿ w ∩ó½∩εΓß∩
- óδß«Γ«⌐ ¿ Φ¿α¿¡«⌐ «¬¡á ó ß¿¼ó«½∞¡δσ »«º¿µ¿∩σ. ¥Γá Σπ¡¬µ¿∩ ¡Ñ
- ó맮óÑΓ ¡¿¬á¬«ú« ¿º¼Ñ¡Ñ¡¿∩ φ¬αá¡á. àß½¿ óδ ß«ºñáñ¿ΓÑ «¬¡«,
- »«º¿µ¿∩ ¿ αẼÑαδ ¬«Γ«α«ú« ¡Ñ »«ºó«½∩εΓ Ñ¼π íδΓ∞ »«½¡«ßΓ∞ε
- ó¿ñ¿¼δ¼, »α«úαá¼¼¡«Ñ «íÑß»ÑτÑ¡¿Ñ πßΓá¡«ó¿Γ »«º¿µ¿ε, »α¿ ¬«Γ«α«⌐
- «¡« »«½¡«ßΓ∞ε »«¼ÑßΓ¿Γß∩ ¡á φ¬αá¡Ñ. àß½¿ Φ¿α¿¡á í«½∞ΦÑ 80 ¿½¿
- óδß«Γá í«½∞ΦÑ 25, Σπ¡¬µ¿∩ »αÑ«íαáºπÑΓ ß««ΓóÑΓßΓóπεΘ¿⌐ αẼÑα ñ«
- ¼á¬ß¿¼á½∞¡« ñ«»πßΓ¿¼«ú« º¡áτÑ¡¿∩.
-
- Ĭ¡« ß«ºñáÑΓß∩ ß π¼á½τ¿óáÑ¼δ¼¿ áΓα¿íπΓἿ. àú« αἬá
- «íαáºπÑΓß∩ «ñ¿¡áα¡δ¼¿ ½¿¡¿∩¼¿, µóÑΓ ß«ñÑন¼«ú« - ∩ᬫ-íѽδ⌐ ¡á
-
- - 19 -
- τÑα¡«¼ Σ«¡Ñ, á ºáú«½«ó«¬ «ΓßπΓßΓóπÑΓ. ¥Γ¿ áΓα¿íπΓδ ¼«úπΓ íδΓ∞
- ¿º¼Ñ¡Ñ¡δ ß««ΓóÑΓßΓóπεΘ¿¼¿ ó맮óἿ ñαπú¿σ Σπ¡¬µ¿⌐, «»¿ßá¡¡δσ
- ¡¿ªÑ.
-
- Ĭ¡á αáß»«½áúáεΓß∩ ó «íαáΓ¡«¼ »«α∩ñ¬Ñ »« «Γ¡«ΦÑ¡¿ε ¬ ¿σ
- ß«ºñá¡¿ε. Ĭ¡«, ß«ºñá¡¡«Ñ ßá¼δ¼ »«ß½Ññ¡¿¼, ∩ó½∩ÑΓß∩ óÑασ¡¿¼ «¬¡«¼
- φ¬αá¡á ¿ íπñÑΓ (»α¿ óδñáτÑ) ºá¬αδóáΓ∞ «¬¡á, ß«ºñá¡¡δÑ αá¡ÑÑ. ¥Γá
- ¿Ñαáασ¿∩ ºáó¿ß¿Γ «Γ »«α∩ñ¬á, ó ¬«Γ«α«¼ «¬¡á «íαáºπεΓß∩, á ¡Ñ «Γ
- »«α∩ñ¬á ¿σ »«¬áºá.
-
- öπ¡¬µ¿∩ establish_window ó«ºóαáΘáÑΓ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ
- WINDOW, ¬«Γ«αá∩ «»αÑñѽѡá ó« ó¬½ετáѼ«¼ Σá⌐½Ñ twindow.h. ¥Γ«Γ
- π¬áºáΓѽ∞ ¿ß»«½∞ºπÑΓß∩ »α¿ »«ß½ÑñπεΘ¿σ ó맮óáσ «¬«¡¡δσ Σπ¡¬µ¿⌐
- ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ «¬¡á, ¬ ¬«Γ«α«¼π «Γ¡«ß¿Γß∩ ó맮ó. ÅÑαÑñáóá⌐ΓÑ
- π¬áºáΓѽ∞ NULL ñαπú¿¼ «¬«¡¡δ¼ Σπ¡¬µ¿∩¼, Ñß½¿ σ«Γ¿ΓÑ αáí«ΓáΓ∞ ß
- «¬¡«¼, «íαẫóá¡¡δ¼ »«ß½Ññ¡¿¼.
-
-
-
- void set_border(WINDOW *wnd, int btype)
- ---------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ Γ¿» «¬«¡¡«⌐ αἬ¿. ûѽ«τ¿ß½Ñ¡¡δ⌐
- »áαá¼ÑΓα btype ñ«½ªÑ¡ »α¿¡¿¼áΓ∞ «ñ¡« ¿º ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
-
- . 0 - «ñ¿¡áα¡δÑ ½¿¡¿¿ (»« π¼«½τá¡¿ε);
- . 1 - ñó«⌐¡δÑ ½¿¡¿¿;
- . 2 - «ñ¿¡áα¡δÑ óÑασ ¿ ¡¿º, ñó«⌐¡δÑ í«¬«óδÑ;
- . 3 - ñó«⌐¡δÑ óÑασ ¿ ¡¿º, «ñ¿¡áα¡δÑ í«¬«óδÑ;
- . 4 - ߻ѵ¿á½∞¡«Ñ »α«ΓὬ¿óáѼ«Ñ 󡿺 «¬¡« ¼Ñ¡ε ß «ñ¿¡áα¡δ¼¿
- ½¿¡¿∩¼¿ ¿ t-í½«¬«¼ «Γ óÑασ¡Ñú« ½Ñó«ú« ñ« óÑασ¡Ñú«
- »αáó«ú« πú½á.
-
-
-
- void set_colors(WINDOW *wnd, int area, int bg, int fg, int inten)
- -----------------------------------------------------------------
-
- - 20 -
-
- ¥Γá Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ µóÑΓá ñ½∩ «¬¡á. Åáαá¼ÑΓα area
- ¼«ªÑΓ »α¿¡¿¼áΓ∞ ß½ÑñπεΘ¿Ñ º¡áτÑ¡¿∩:
-
- . ALL
- . BORDER
- . TITLE
- . ACCENT
- . NORMAL
-
- ¥Γ«Γ »áαá¼ÑΓα «»αÑñѽ∩ÑΓ τáßΓ¿ «¬¡á, ¡á ¬«Γ«αδÑ
- αáß»α«ßΓαá¡∩ÑΓß∩ ñÑ⌐ßΓó¿Ñ. ALL ß««ΓóÑΓßΓóπÑΓ óßѼ τáßΓ∩¼. BORDER
- πßΓá¡áó½¿óáÑΓ µóÑΓá αἬ¿ «¬¡á, ¬«Γ«αá∩ ºá¡¿¼áÑΓ «ñ¡«ß¿¼ó«½∞¡δ⌐
- α∩ñ »«º¿µ¿⌐ ó«¬απú ¡Ñú«. TITLE πßΓá¡áó½¿óáÑΓ µóÑΓá ºáú«½«ó¬á,
- αẼÑΘáѼ«ú« ¡á óÑασ¡Ñ⌐ úαá¡¿µÑ «¬¡á. ACCENT - φΓ« «í½áßΓ∞,
- ¿ß»«½∞ºπѼá∩ ñ½∩ í½«¬«ó ¼Ñ¡ε ¿ ñαπú«ú« óδñѽѡ¡«ú« ΓѬßΓá,
- ¬«Γ«αδ⌐ »«∩ó½∩ÑΓß∩ ó ¬áτÑßΓóÑ óαѼѡ¡« »«ñßóÑτ¿óáѼδσ τáßΓÑ⌐
- «í½áßΓ¿ NORMAL, úñÑ «Γ«íαáªáÑΓß∩ óÑß∞ ΓѬßΓ. ûѽδÑ τ¿ß½á bg ¿
- fg ºáñáεΓ µóÑΓá ñ½∩ Σ«¡á ¿ »ÑαÑñ¡Ñú« »½á¡á αẽ¿τ¡δσ τáßΓÑ⌐
- «¬¡á. ä«»π߬áεΓß∩ ß½ÑñπεΘ¿Ñ µóÑΓá:
-
- . RED - á½δ⌐;
- . GREEN - ºÑ½Ñ¡δ⌐;
- . BLUE - ú«½πí«⌐;
- . WHITE - íѽδ⌐;
- . YELLOW - ªÑ½Γδ⌐;
- . AQUA - á¬óá¼áα¿¡«óδ⌐;
- . MAGENTA - ¬αáß¡δ⌐;
- . BLACK - τÑα¡δ⌐.
-
- ûѽ«Ñ τ¿ß½« inten «»αÑñѽ∩ÑΓ ¿¡Γѡ߿ó¡«ßΓ∞ ß¿¼ó«½«ó
- »ÑαÑñ¡Ñú« »½á¡á ¿ ¼«ªÑΓ »α¿¡¿¼áΓ∞ ñóá º¡áτÑ¡¿∩:
-
- . BRIGHT - ∩α¬á∩
- . DIM - «íδτ¡á∩
-
- éßÑ º¡áτÑ¡¿∩ «»αÑñѽѡδ ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ twindow.h, ¬«Γ«αδ⌐
-
- - 21 -
- αáßß¼áΓα¿óáÑΓß∩ »«ºªÑ ó φΓ«⌐ ú½áóÑ.
-
-
-
- void set_title(WINDOW *wnd, char *title)
- ----------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ º¡áτÑ¡¿Ñ ºáú«½«ó¬á «¬¡á.
- ÅÑαÑñáóáѼá∩ óἿ ßΓ᫬á ñ«½ª¡á ß«σαá¡∩Γ∞ß∩ ó ΓÑτÑ¡¿Ñ óßÑú«
- ßπΘÑßΓó«óá¡¿∩ «¬¡á, »«φΓ«¼π ¿ß»«½∞ºπ⌐ΓÑ ½¿ΓÑαá½∞¡πε ¬«¡ßΓá¡Γπ ¿½¿
- ó¡ÑΦ¡¿⌐ ¼áßß¿ó ß¿¼ó«½«ó.
-
-
-
- void set_intensity(WINDOW *wnd, int inten)
- ------------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ πßΓá¡áó½¿óáÑΓ ¿¡Γѡ߿ó¡«ßΓ∞ Σ«¡á ñ½∩ óßÑσ τáßΓÑ⌐
- «¬¡á. ç¡áτÑ¡¿∩¼¿ inten ¼«úπΓ íδΓ∞ BRIGHT ¿½¿ DIM.
-
-
-
- void display_window(WINDOW *wnd)
- --------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ «Γ«íαáªáÑΓ «¬¡«, ¬«Γ«α«Ñ í佫 αá¡ÑÑ ß«ºñá¡«.
- ùΓ«íδ ¿ºíѪáΓ∞ ¡Ñπñáτ¡«ú« «Γ«íαáªÑ¡¿∩, óδºδóá⌐ΓÑ φΓπ Σπ¡¬µ¿ε
- »«ß½Ñ πßΓá¡«ó¬¿ óßÑσ áΓα¿íπΓ«ó ¿, Ñß½¿ 󫺼«ª¡«, »«ß½Ñ Γ«ú«, ¬á¬
- «¬¡« ºá»«½¡Ñ¡« ΓѬßΓ«¼, ¬«Γ«αδ⌐ «¡« ñ«½ª¡« óδñáóáΓ∞.
-
-
-
- void delete_window(WINDOW *wnd)
- -------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ π¡¿τΓ«ªáÑΓ ß«ºñá¡¡«Ñ αá¡ÑÑ «¬¡«. àß½¿ «¬¡«
- ∩ó½∩ÑΓß∩ ó¿ñ¿¼δ¼ (óδñá¡« ß »«¼«Θ∞ε display_window), Γ« «¡«
-
- - 22 -
- «τ¿ΘáÑΓß∩, ¿ φ¬αá¡ ó«ßßΓá¡áó½¿óáÑΓß∩ ¬ Ñú« »αÑñδñπΘѼπ «íαáºπ.
-
-
-
- void clear_window(WINDOW *wnd)
- ------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ ºá»«½¡∩ÑΓ ΓѬßΓ«óπε «í½áßΓ∞ «¬¡á »α«íѽἿ.
-
-
-
- void hide_window(WINDOW *wnd)
- -----------------------------
-
- ¥Γá Σπ¡¬µ¿∩ «τ¿ΘáÑΓ óδñá¡¡«Ñ «¬¡«, ó«ßßΓá¡áó½¿óá∩ ¡á φ¬αá¡Ñ
- Ñú« »αÑñδñπΘÑÑ ß«ñÑন¼«Ñ. Ĭ¡« «ßΓáÑΓß∩ ßπΘÑßΓóπεΘ¿¼ ¿ ¼«ªÑΓ
- ¼«ñ¿Σ¿µ¿α«óáΓ∞ß∩ ½εíδ¼ ß»«ß«í«¼. ū߽ÑñπεΘ¿⌐ ó맮ó display_window
- ó«ßßΓá¡«ó¿Γ Ñú« ¡á φ¬αá¡Ñ ó ß««ΓóÑΓßΓóπεΘѼ αáß»«½«ªÑ¡¿¿
- «Γ¡«ß¿Γѽ∞¡« ñαπú¿σ «¬«¡.
-
-
-
- void wcursor(WINDOW *wnd, int x, int y)
- ---------------------------------------
-
- èáªñ«Ñ «¬¡« «í½áñáÑΓ ½«ú¿τÑ߬«⌐ »«º¿µ¿Ñ⌐ ¬παß«αá, ¬«Γ«αá∩
- ¿º¼Ñ¡∩ÑΓß∩ «Γ 0,0 (óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ ΓѬßΓ«ó«⌐ «í½áßΓ¿ «¬¡á) ñ«
- úαá¡¿τ¡δσ αẼÑα«ó «¬¡á. ¥Γá Σπ¡¬µ¿∩ »ÑαÑßΓáó½∩ÑΓ ¬παß«α ó «¬¡Ñ.
-
- öπ¡¬µ¿¿ wputehar ¿ wprintf óδñáεΓ ΓѬßΓ «Γ¡«ß¿Γѽ∞¡« ñá¡¡«⌐
- »«º¿µ¿¿ ¬παß«αá. Ä¡¿ ¿º¼Ñ¡∩εΓ »«º¿µ¿ε ¬παß«αá Γ«τ¡« ΓᬪÑ, ¬á¬
- φΓ« »α«¿ßσ«ñ¿½« íδ, Ñß½¿ íδ π»αáó½Ñ¡¿Ñ ¬παß«α«¼ «ßπΘÑßΓó½∩½«ß∞ ß
- »«¼«Θ∞ε ¬½áó¿áΓπαδ ñ¿ß»½Ñ∩. æ¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ (\n)
- πßΓá¡áó½¿óáÑΓ ¬παß«α ó ¡π½Ñó«⌐ ßΓ«½íѵ ß½ÑñπεΘÑ⌐ ßΓ᫬¿,
- »ÑαѼÑΘá∩ ΓѬßΓ ó «¬¡Ñ óóÑασ ¡á «ñ¡π ßΓ᫬π, Ñß½¿ ¬παß«α πªÑ
- ¡áσ«ñ¿Γß∩ ó ¡¿ª¡Ñ⌐ ßΓα«¬Ñ «¬¡á. æ¿¼ó«½ Γáíπ½∩µ¿¿ (\t) »ÑαѼÑΘáÑΓ
- ¬παß«α ¬ ß½ÑñπεΘÑ⌐ »«º¿µ¿¿ Γáíπ½∩µ¿¿ ó «¬¡Ñ. Æáíπ½∩µ¿¿
-
- - 23 -
- αáß»«½áúáεΓß∩ ß ¿¡ΓÑαóὫ¼ ó τÑΓδαÑ ß¿¼ó«½á.
-
-
-
- void wprintf(WINDOW *wnd, char *fmt, ...)
- -----------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ ∩ó½∩ÑΓß∩ «¬«¡¡«⌐ óÑαß¿Ñ⌐ ßΓá¡ñáαΓ¡«⌐ Σπ¡¬µ¿¿
- printf ∩ºδ¬á æ¿. Ä¡á ¿ß»«½∞ºπÑΓ ßΓá¡ñáαΓ¡πε Σπ¡¬µ¿ε sprintf ñ½∩
- »«ßΓα«Ñ¡¿∩ ßΓ᫬¿, óδñáóáѼ«⌐ ó «¬¡«. ôíÑñ¿ΓÑß∞, τΓ«
- αѺπ½∞Γ¿απεΘá∩ ßΓα«¬á ¡Ñ ñ½¿¡¡ÑÑ 100 ß¿¼ó«½«ó, ¿½¿ ¿º¼Ñ¡¿ΓÑ ñ½¿¡π
- ó ¼áßß¿óÑ dlin Σπ¡¬µ¿¿ wprintf ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ twindow.c.
-
-
-
- void wputchar(WINDOW *wnd, int ch)
- ----------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ ∩ó½∩ÑΓß∩ «¬«¡¡«⌐ óÑαß¿Ñ⌐ putchar. Ä¡á ºá»¿ßδóáÑΓ
- ß¿¼ó«½ ¿º ch ó «¬¡« ó ΓѬπΘπε »«º¿µ¿ε ¬παß«αá. èπαß«α »α¿ φΓ«¼
- »α«ñó¿úáÑΓß∩ ñá½∞ΦÑ. àß½¿ ß¿¼ó«½ ∩ó½∩ÑΓß∩ ß¿¼ó«½«¼ ¡«ó«⌐ ßΓ᫬¿
- (\n), ¬παß«α »ÑαÑßΓáó½∩ÑΓß∩ ó ¡π½Ñóπε »«º¿µ¿ε ß½ÑñπεΘÑ⌐ ßΓ᫬¿.
- àß½¿ ß¿¼ó«½ ∩ó½∩ÑΓß∩ Γáíπ½∩µ¿Ñ⌐ (\t), ¬παß«α »α«ñó¿úáÑΓß∩ ¬
- ß½ÑñπεΘÑ⌐ »«º¿µ¿¿ Γáíπ½∩µ¿¿ «¬¡á. Ĭ«¡¡δÑ »«º¿µ¿¿ Γáíπ½∩µ¿¿
- αáß»«½áúáεΓß∩ ó ¬áªñ«⌐ τÑΓóÑαΓ«⌐ »«º¿µ¿¿ «¬¡á.
-
-
-
- void reverse_video(WINDOW *wnd)
- -------------------------------
-
- Å«ß½Ñ «íαáΘÑ¡¿∩ ¬ φΓ«⌐ Σπ¡¬µ¿¿ óßÑ ó맮óδ wprintf ¿ wputchar
- íπñπΓ »α¿ «Γ«íαáªÑ¡¿¿ ¿ß»«½∞º«óáΓ∞ µóÑΓá ACCENT ó¼ÑßΓ« NORMAL.
-
-
-
- void normal_video(WINDOW *wnd)
-
- - 24 -
- ------------------------------
-
- Å«ß½Ñ «íαáΘÑ¡¿∩ ¬ φΓ«⌐ Σπ¡¬µ¿¿ óßÑ ó맮óδ wprintf ¿ wputchar
- íπñπΓ »α¿ «Γ«íαáªÑ¡¿¿ ¿ß»«½∞º«óáΓ∞ µóÑΓá NORMAL. ¥Γá Σπ¡¬µ¿∩
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ ó«ºóαáΓá ¬ ¡«α¼á½∞¡«¼π «Γ«íαáªÑ¡¿ε »«ß½Ñ ó맮óá
- reverse_video.
-
-
-
- void close_all()
- ----------------
-
- ¥Γá Σπ¡¬µ¿∩ π¡¿τΓ«ªáÑΓ óßÑ «íαẫóá¡¡δÑ «¬¡á.
-
-
-
- void move_windom(WINDOW *wnd, int x, int y)
- -------------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ «¬¡« Γᬿ¼ «íαẫ¼, τΓ« Ñú« óÑασ¡¿⌐
- ½Ñóδ⌐ πú«½ πßΓá¡áó½¿óáÑΓß∩ ó ß¿¼ó«½∞¡δσ ¬««αñ¿¡áΓáσ, ºáñá¡¡δσ x ¿
- π. ¥Γá Σπ¡¬µ¿∩ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á Γ«½∞¬« ñ½∩ ß½«Ñ¡δσ «¬«¡.
-
-
-
- void rmove_window(WINDOW *wnd, int x, int y)
- --------------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ «¬¡« »πΓѼ ñ«íáó½Ñ¡¿∩ ¬ º¡áτÑ¡¿∩¼ x ¿
- y ΓѬπΘ¿σ ¬««αñ¿¡áΓ ½Ñó«ú« óÑασ¡Ñú« πú½á «¬¡á. êß»«½∞ºπ⌐ΓÑ φΓπ
- Σπ¡¬µ¿ε Γ«½∞¬« ñ½∩ ß½«Ñ¡δσ «¬«¡.
-
-
-
- void forefront(WINDOW *wnd)
- ---------------------------
-
-
- - 25 -
- ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ «¬¡« ó ßá¼«Ñ »ÑαÑñ¡ÑÑ »«½«ªÑ¡¿Ñ
- «Γ¡«ß¿Γѽ∞¡« ñαπú¿σ «¬«¡. Ĭ¡«, Ñß½¿ «¡« ó¿ñ¿¼«, «Γ«íαáªáÑΓß∩
- »«óÑασ «ßΓá½∞¡δσ. êß»«½∞ºπ⌐ΓÑ φΓπ Σπ¡¬µ¿ε Γ«½∞¬« ñ½∩ ß½«Ñ¡δσ
- «¬«¡.
-
-
-
- void rear_window(WINDOW *wnd)
- -----------------------------
-
- ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ «¬¡« ó ßá¼«Ñ ºáñ¡ÑÑ »«½«ªÑ¡¿Ñ
- «Γ¡«ß¿Γѽ∞¡« ñαπú¿σ «¬«¡. Ĭ¡«, Ñß½¿ «¡« ó¿ñ¿¼«, «Γ«íαáªáÑΓß∩ »«ñ
- óßѼ¿ «ßΓá½∞¡δ¼¿. êß»«½∞ºπ⌐ΓÑ φΓπ Σπ¡¬µ¿ε Γ«½∞¬« ñ½∩ ß½«Ñ¡δσ
- «¬«¡.
-
-
-
- int get_selection(WINDOW *wnd, int sel, char *keys)
- ---------------------------------------------------
-
- ¥Γá Σπ¡¬µ¿∩ »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ «¬¡« ó ¬áτÑßΓóÑ ¼Ñ¡ε. éδ
- ñ«½ª¡δ ß«ºñáΓ∞ «¬¡« ¿ ºá»¿ßáΓ∞ ó ¡Ñú« ¡Ñ߬«½∞¬« ßΓ᫬ ΓѬßΓá,
- ߬áªÑ¼, Σπ¡¬µ¿Ñ⌐ wprintf. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ set_colors ñ½∩
- πßΓá¡«ó¬¿ º¡áτÑ¡¿⌐ µóÑΓ«ó ACCENT ó «¬¡Ñ (»« π¼«½τá¡¿ε - τÑα¡δÑ
- íπ¬óδ ¡á íѽ«¼ Σ«¡Ñ). çáΓѼ óδ óδºδóáÑΓÑ get_selection. öπ¡¬µ¿∩
- ¿ß»«½∞ºπÑΓ «¬¡« ó ¬áτÑßΓóÑ ¼Ñ¡ε, ¬áªñá∩ ßΓα«¬á ¬«Γ«α«ú«
- »αÑñßΓáó½∩ÑΓ á½∞ΓÑα¡áΓ¿óπ óδí«αá. ǽ∞ΓÑα¡áΓ¿óδ »«ñßóÑτ¿óáεΓß∩
- µóÑΓ«¼ ACCENT. ûѽ«τ¿ß½Ñ¡¡«Ñ º¡áτÑ¡¿Ñ sel ¿ß»«½∞ºπÑΓß∩ ñ½∩
- »Ñαó«¡áτá½∞¡«ú« αẼÑΘÑ¡¿∩ ∩ᬫú« í½«¬á ¬παß«αá ¼Ñ¡ε ¡á «ñ¡«⌐ ¿º
- á½∞ΓÑα¡áΓ¿ó. ç¡áτÑ¡¿Ñ 1 ß««ΓóÑΓßΓóπÑΓ »Ñαó«⌐ á½∞ΓÑα¡áΓ¿óÑ, 2 -
- óΓ«α«⌐ ¿ Γ.ñ.
-
- Å«½∞º«óáΓѽ∞ ¼«ªÑΓ »ÑαѼÑΘáΓ∞ í½«¬ ¼Ñ¡ε óóÑασ ¿ ó¡¿º
- ¬½áó¿ΦἿ π»αáó½Ñ¡¿∩ ¬παß«α«¼ ¿ »α«¿ºó«ñ¿Γ∞ óδí«α ó ¼Ñ¡ε ¬½áó¿ΦÑ⌐
- <éó«ñ>. è½áó¿Φá <è½ετ> »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ óδσ«ñá ¿º φΓ«ú« »α«µÑßßá.
-
- Cß佬á keys π¬áºδóáÑΓ ¡á ßΓα«¬π º¡áτÑ¡¿⌐ ¬½áó¿Φ, ¬«Γ«αδÑ
-
- - 26 -
- ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ óδí«αá ¿º ¼Ñ¡ε. ìѬ«Γ«αδÑ ß¿ßΓÑ¼δ ¼Ñ¡ε
- αáºαÑΦáεΓ »«½∞º«óáΓÑ½ε »α¿¼Ñ¡∩Γ∞ ¡áªáΓ¿∩ ¬½áó¿Φ ¡áα∩ñπ ß
- »ÑαѼÑΘÑ¡¿Ñ¼ í½«¬á ¬παß«αá. ä½∩ ó䬽ετÑ¡¿∩ φΓ«⌐ 󫺼«ª¡«ßΓ¿
- »ÑαÑñá⌐ΓÑ »áαá¼ÑΓαπ keys ßß佬π NULL.
-
- ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ µÑ½«τ¿ß½Ñ¡¡«Ñ º¡áτÑ¡¿Ñ, αáó¡«Ñ ¡«¼Ñαπ
- óδíαá¡¡«⌐ ó ¼Ñ¡ε á½∞ΓÑα¡áΓ¿óδ. ç¡áτÑ¡¿Ñ «íδτ¡« αáó¡∩ÑΓß∩ Ññ¿¡¿µÑ
- ¿ í«½ÑÑ, «ñ¡á¬«, Ñß½¿ »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬½áó¿Φπ <è½ετ>,
- Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡π½∞. öπ¡¬µ¿∩ íπñÑΓ Γá¬ªÑ ó«ºóαáΘáΓ∞ º¡áτÑ¡¿∩
- FWD ¿½¿ BS, Ñß½¿ »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬½áó¿Φ¿ π»αáó½Ñ¡¿∩
- ¬παß«α«¼ ó»αáó« ¿½¿ ó½Ñó«. ¥Γ¿ º¡áτÑ¡¿∩ «»αÑñѽѡδ ó keys.h.
-
-
-
- void error_message(char *s)
- ---------------------------
-
- ¥Γá Σπ¡¬µ¿∩ óδñáÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ, π¬áºδóáѼ«Ñ ßß佬«⌐
- s, ¿ ó¬½ετáÑΓ ºóπ¬«ó«⌐ ß¿ú¡á½. æ««íΘÑ¡¿Ñ «Γ«íαáªáÑΓß∩ ó
- «¬¡Ñ ó ¡¿ª¡Ñ¼ »αáó«¼ ¬óáñαá¡ΓÑ φ¬αá¡á. æ««íΘÑ¡¿Ñ «ßΓáÑΓß∩ ¡á
- φ¬αá¡Ñ »«ß½Ñ ºáóÑαΦÑ¡¿∩ Σπ¡¬µ¿¿.
-
-
-
- void clear_message()
- --------------------
-
- ¥Γá Σπ¡¬µ¿∩ πñá½∩ÑΓ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ, Ñß½¿ «¡« í佫
- óδñá¡« Σπ¡¬µ¿Ñ⌐ error_message.
-
-
-
- ï¿ßΓ¿¡ú¿ «¬«¡¡δσ Σπ¡¬µ¿⌐
- -----------------------------------------------------------------
-
- äá¡¡δÑ ½¿ßΓ¿¡ú¿ ß«ñÑαªáΓ ¿ßσ«ñ¡δÑ Σá⌐½δ Σπ¡¬µ¿⌐ »«ññÑ᪬¿
- «¬¡á. Åα¿ó«ñ∩Γß∩ ñóá ½¿ßΓ¿¡úá: twindow.h ¿ twindow.c. èáªñδ⌐
-
- - 27 -
- ½¿ßΓ¿¡ú ß«»α«ó«ªñáÑΓß∩ «»¿ß᡿Ѽ Ñú« ß«ñÑαªá¡¿∩.
-
-
- êßσ«ñ¡δ⌐ ½¿ßΓ¿¡ú: twindow.h
- ---------------------------
-
- ï¿ßΓ¿¡ú 6.1, twindow.h, «»αÑñѽ∩ÑΓ «¬«¡¡δÑ ßΓαπ¬Γπαδ ¿
- ß«ñÑαª¿Γ »α«Γ«Γ¿»δ ñ½∩ Σπ¡¬µ¿⌐. éδ ñ«½ª¡δ ó¬½ετáΓ∞ ¿σ ó ½εíπε
- ¿ßσ«ñ¡πε »α«úαá¼¼π, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ «¬«¡¡δÑ Σπ¡¬µ¿¿.
-
- ï¿ßΓ¿¡ú 6.1: twindow.h
-
- /* twindow.h */
- /* éδñѽ¿ΓÑ φΓ« «»αÑñѽѡ¿Ñ ¿º ¬«¼¼Ñ¡Γáα¿∩ ñ½∩ ßΓѬ«óδσ «¬«¡,
- * ¡« ¡Ñ ñ½∩ ß½«Ñ¡δσ «¬«¡.
- *
- * #define FASTWINDOWS
- *
- */
- /* window colors */
-
- #define RED 4
- #define GREEN 2
- #define BLUE 1
- #define WHITE (RED+GREEN+BLUE)
- #define YELLOW (RED+GREEN)
- #define AQUA (GREEN+BLUE)
- #define MAGENTA (RED+BLUE)
- #define BLACK 0
- #define BRIGHT 8
- #define DIM 0
-
- #define BORDER 0
- #define TITLE 1
- #define ACCENT 2
- #define NORMAL 3
- #define ALL 4
-
- - 28 -
-
- #define TRUE 1
- #define FALSE 0
- #define ERROR -1
- #define OK 0
-
- /* «¬«¡¡δÑ π»αáó½∩εΘ¿Ñ ßΓαπ¬Γπαδ */
-
- typedef struct field { /* «»¿ßá¡¿Ñ »«½∩ óó«ñá ñá¡¡δσ */
- char *fmask; /* ¼áß¬á »«½∩ óó«ñá ñá¡¡δσ */
- int fprot; /* ºáΘ¿Γá »«½∩ */
- char *fbuff; /* íπΣÑα »«½∩ */
- int ftype; /* Γ¿» »«½∩ */
- int from; /* ßΓα«¬á »«½∩ */
- int fcol; /* ßΓ«½íѵ »«½∩ */
- void (*fhelp)(); /* Σπ¡¬µ¿∩ »«ñ߬Ậ¿ »«½∩ */
- char *fhwin; /* Σπ¡¬µ¿∩ »«ñ߬Ậ¿ «¬¡á */
- int flx, fly; /* αáß»«½«ªÑ¡¿Ñ »«ñ߬Ậ¿ «¬¡á */
- int (*fvalid)(); /* Σπ¡¬µ¿∩ ºá»«½¡Ñ¡¿∩ »«½∩ */
- struct field *fnxt; /* ß½ÑñπεΘÑÑ »«½Ñ óδñáτ¿ */
- struct field *fprv; /* »αÑñδñπΘÑÑ »«½Ñ óδñáτ¿ */
- } FIELD;
- typedef struct _wnd {
- int _wv; /* ¿ßΓ¿¡á, Ñß½¿ «¬¡« ó¿ñ¿¼« */
- int _hd; /* ¿ßΓ¿¡á, Ñß½¿ «¬¡« ߬αδΓ« */
- char *_ws; /* π¬áºδóáÑΓ ¡á í½«¬ ß«σαá¡Ñ¡¿∩ «¬¡á */
- char *_tl; /* π¬áºδóáÑΓ ¡á ºáú«½«ó«¬ «¬¡á */
- int _wx; /* nv x ¬««αñ¿¡áΓá */
- int _wy; /* nv y ¬««αñ¿¡áΓá */
- int _ww; /* Φ¿α¿¡á «¬¡á */
- int _wh; /* óδß«Γá «¬¡á */
- int _wsp; /* π¬áºáΓѽ∞ »α«¬απΓ¬¿ */
- int _sp; /* π¬áºáΓѽ∞ óδí«αá */
- int _cr; /* »«º¿µ¿∩ σ ¬παß«αá */
- int btype; /* Γ¿» αἬ¿ */
- int wcolor[4]; /* µóÑΓá «¬¡á */
- int _pn; /* »αÑñδñπΘ¿⌐ ¡«α¼á½∞¡δ⌐ µóÑΓ */
-
- - 29 -
- struct _wnd *_nx; /* π¬áºδóáÑΓ ¡á ß½ÑñπεΘÑÑ «¬¡« */
- struct _wnd *_pv; /* π¬áºδóáÑΓ ¡á »αÑñδñπΘÑÑ «¬¡« */
- FIELD *_fh; /* π¬áºδóáÑΓ ¡á 1-Ñ »«½Ñ óó«ñá ñá¡¡δσ */
- FIELD *_ft; /* π¬áºδóáÑΓ ¡á »«ß½Ññ¡ÑÑ »«½Ñ óó«ñá ñá¡¡δσ */
- } WINDOW;
- typedef struct w_menu {
- char *mname;
- char **mselcs;
- void (**func)();
- } MENU;
- #define SAV (wnd->_ws)
- #define WTITLE (wnd->_tl)
- #define COL (wnd->_wx)
- #define ROW (wnd->_wy)
- #define WIDTH (wnd->_ww)
- #define HEIGHT (wnd->_wh)
- #define SCROLL (wnd->_wsp)
- #define SELECT (wnd->_sp)
- #define WCURS (wnd->_cr)
- #define WBORDER (wnd->wcolor[BORDER])
- #define WTITLEC (wnd->wcolor[TITLE])
- #define WACCENT (wnd->wcolor[ACCENT])
- #define WNORMAL (wnd->wcolor[NORMAL])
- #define PNORMAL (wnd->_pn)
- #define BTYPE (wnd->btype)
- #define NEXT (wnd->_nx)
- #define PREV (wnd->_pv)
- #define WCOLOR (wnd->wcolor)
- #define VISIBLE (wnd->_wv)
- #define HIDDEN (wnd->_hd)
- #define FHEAD (wnd->_fh)
- #define FTAIL (wnd->_ft)
-
- #define NW (wcs[wnd->btype].nw)
- #define NE (wcs[wnd->btype].ne)
- #define SE (wcs[wnd->btype].se)
- #define SW (wcs[wnd->btype].sw)
-
- - 30 -
- #define SIDE (wcs[wnd->btype].side)
- #define LINE (wcs[wnd->btype].line)
-
- /* ÅÉÄÆÄÆêÅ¢ öôìèûêë ê îÇèÉÄæ¢ */
-
- /* «íΘѵѽÑóδÑ Σπ¡¬µ¿¿ ¿ ¼á¬α«ßδ */
-
- void clear_screen(void);
- int vmode(void);
- void cursor(int, int);
- void curr_cursor(int *, int *);
- int cursor_type(void);
- void set_cursor_type(int);
- int get_char(void);
- int scroll_lock(void);
- void vpoke(unsigned, unsigned, unsigned);
- int vpeek(unsigned, unsigned);
-
- /* «¬«¡¡δÑ Σπ¡¬µ¿¿ ¿ ¼á¬α«ßδ */
-
- WINDOW *establish_window(int, int, int, int);
- void set_border(WINDOW *, int);
- void set_colors(WINDOW *, int, int, int, int);
- void set_intensity(WINDOW *, int);
- void set_title(WINDOW *, char *);
- void display_window(WINDOW *);
- void delete_window(WINDOW *);
- void clear_window(WINDOW *);
- void hide_window(WINDOW *);
- void wprintf(WINDOW *, char *, ...);
- void wputchar(WINDOW *, int);
- void close_all(void);
- void wcursor(WINDOW *, int x, int y);
- void error_message(char *);
- void clear_message(void);
- int get_selection(WINDOW *, int, char *);
-
-
- - 31 -
- #define reverse_video(wnd) wnd->wcolor[3]=wnd->wcolor[2]
- #define normal_video(wnd) wnd->wcolor[3]=wnd->_pn
- #define rmove_window(wnd,x,y) repos_wnd(wnd, x, y, 0)
- #define move_window(wnd,x,y) repos_wnd(wnd, COL-x, ROW-y, 0)
- #define forefront(wnd) repos_wnd(wnd, 0, 0, 1)
- #define rear_window(wnd) repos_wnd(wnd, 0, 0, -1)
-
- /* ó¡πΓαÑ¡¡¿Ñ ñ½∩ «¬«¡¡δσ »α«µÑßß«ó */
-
- void accent(WINDOW *);
- void deaccent(WINDOW *);
- void scroll(WINDOW *, int);
- void repos_wnd(WINDOW *, int, int, int);
- void acline(WINDOW *, int);
- #define accent(wnd) acline(wnd, WACCENT)
- #define deaccent(wnd) acline(wnd, WNORMAL)
- #define clr(bg,fg,in) ((fg)|(bg<<4)|(in))
- #define vad(x,y) ((y)*160+(x)*2)
- #ifdef FASTWINDOWS
- #define cht(ch,at) (((ch)&255)|((at)<<8))
- #define displ(w,x,y,c,a) vpoke(VSG,vad(x+COL,y+ROW),cht(c,a))
- #define dget(w,x,y) vpeek(VSG,vad(x+COL,y+ROW))
- #define verify_wnd(w) (*(w)=listtail)!=0
- #else
- void displ(WINDOW *wnd, int x, int y, int ch, int at);
- #endif
- /* Σπ¡¬µ¿∩ αÑñá¬Γ«αá */
- void text_editor(WINDOW *, char *, unsigned);
-
- /* Σπ¡¬µ¿∩ ¼Ñ¡ε */
- void menu_select(char *name, MENU *mn);
-
- /* Σπ¡¬µ¿∩ »«ñ߬Ậ¿ */
- void load_help(char *);
- void set_help(char *, int, int);
-
- /* Σπ¡¬µ¿∩ óó«ñá ñá¡¡δσ */
-
- - 32 -
- void init_template(WINDOW *);
- FIELD *establish_field(WINDOW *, int, int, char *, char *, int);
- void clear_template(WINDOW *);
- void field_tally(WINDOW *);
- int data_entry(WINDOW *);
- void wprompt(WINDOW *, int, int, char *);
- void error_message(char *);
- void clear_notice(void);
- void field_window(FIELD *, char *, int, int);
- #define field_protect(f,s) f->fprot=s
- #define field_help(f,h) f->fhelp=h
- #define field_validate(f,v) f->fvalid=v
-
-
-
- Ä»¿ßá¡¿Ñ »α«úαá¼¼δ: twindow.h
- -----------------------------------------------------------------
-
- ⽫íá½∞¡á∩ »ÑαѼѡ¡á∩ FASTWINDOWS «»αÑñѽѡá ó¡πΓα¿
- ¬«¼¼Ñ¡Γáα¿∩ ó »αÑñßΓáó½Ñ¡¡«⌐ »α«úαá¼¼Ñ. 鬽ετÑ¡¿Ñ »ÑαѼѡ¡«⌐
- αáßßτ¿Γá¡« ¡á »α¿¼Ñ¡Ñ¡¿Ñ ßΓѬ«ó«⌐ «¬«¡¡«⌐ ¬«¡Σ¿úπαᵿ¿. üѺ
- ¿º¼Ñ¡Ñ¡¿⌐ »α¿ ¬«¼»¿½∩µ¿¿ íπñÑΓ »α¿¡∩Γá ß½«Ñ¡á∩ «¬«¡¡á∩
- ¬«¡Σ¿úπαᵿ∩. ä½∩ ¬«¼»¿½∩µ¿¿ ßΓѬ«ó«⌐ «¬«¡¡«⌐ ß¿ßΓÑ¼δ ¡Ñ«íσ«ñ¿¼«
- óδñѽ¿Γ∞ «»ÑαáΓ«α #define ¿º ¬«¼¼Ñ¡Γáα¿∩.
-
- æΓαπ¬Γπαá FIELD ¿ß»«½∞ºπÑΓß∩ ñ½∩ «»αÑñѽѡ¿∩ »«½Ñ⌐ óó«ñá
- ñá¡¡δσ ó¡πΓα¿ «í½áßΓ¿ ñá¡¡δσ ó «¬¡áσ. ¥Γ«Γ »α«µÑßß «»¿ßá¡ ó
- â½áóÑ 8.
-
- æΓαπ¬Γπαá WINDOW «»¿ßδóáÑΓ «¬¡« ñ½∩ ß¿ßΓѼδ . èáªñ«¼π «¬¡π
- ¡áº¡áτáÑΓß∩ «ñ¡á ßΓαπ¬Γπαá φΓ«ú« Γ¿»á.
-
- æΓαπ¬Γπαá MENU ¿ß»«½∞ºπÑΓß∩ »α«úαá¼¼¡δ¼ «íÑß»ÑτÑ¡¿Ñ¼
- «¬«¡¡δσ ¼Ñ¡ε ó â½áóÑ 10. 䫽ªÑ¡ íδΓ∞ ¼áßß¿ó ßΓαπ¬Γπα MENU ß
- «ñ¡¿¼ φ½Ñ¼Ñ¡Γ«¼ ñ½∩ ¬áªñ«ú« »α«ΓὬ¿óáѼ«ú« 󡿺 ¼Ñ¡ε.
-
- 滿߫¬ «»ÑαáΓ«α«ó #define ¿ß»«½∞ºπÑΓß∩ ñ½∩ »α¿ñá¡¿∩
-
- - 33 -
- «»ÑαáΓ«αá¼ ó twindow.c ½πτΦÑ⌐ τ¿ΓáѼ«ßΓ¿. î¡Ñ¼«¡¿τÑ߬¿Ñ ¿¼Ñ¡á
- ß««ΓóÑΓßΓóπεΓ φ½Ñ¼Ñ¡Γá¼ ßΓαπ¬Γπαδ WINDOW, π¬áºá¡¡«⌐ ßß佬«⌐
- wnd. éßÑ Σπ¡¬µ¿¿ ó twindow.c ¿ß»«½∞ºπεΓ ¿¼∩ φΓ«⌐ ßß佬¿ »«
- ß«ú½áΦÑ¡¿ε.
-
- twindow.h ß«ñÑαª¿Γ »α«Γ«Γ¿»δ ñ½∩ óßÑσ «¬«¡¡δσ Σπ¡¬µ¿⌐,
- ¬«Γ«αδÑ íπñπΓ óδºδóáΓ∞ß∩ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
-
-
- êßσ«ñ¡δ⌐ ½¿ßΓ¿¡ú: twindow.c.
- ----------------------------
-
- ï¿ßΓ¿¡ú 6.2 - φΓ« twindow.c. Ä¡ ß«ñÑαª¿Γ óßÑ «»¿ßá¡¡δÑ
- αá¡ÑÑ ó φΓ«⌐ ú½áóÑ Σπ¡¬µ¿¿. éδ ñ«½ª¡δ «Γ¬«¼»¿½¿α«óáΓ∞ Ñú« ¿
- ßó∩ºδóáΓ∞ Ñú« «íΩÑ¬Γ¡δ⌐ ¼«ñπ½∞ ß ½εí«⌐ »α«úαá¼¼«⌐, ¬«Γ«αá∩
- ¿ß»«½∞ºπÑΓ «¬¡á. ū߬«½∞¬π «¡ óδºδóáÑΓ Σπ¡¬µ¿¿ ¿º ibmpc.c, Ñú«
- «íΩÑ¬Γ¡δ⌐ ¼«ñπ½∞ ñ«½ªÑ¡ íδΓ∞ Γá¬ªÑ ó¬½ετÑ¡ ó αÑñá¬Γ¿α«óá¡¿Ñ
- ßó∩ºÑ⌐.
-
- ï¿ßΓ¿¡ú 6-2: twindow.c
-
- /* twindow.c */
- #include <stdio.h>
- #include <ctype.h>
- #include <stdarg.h>
- #include <dos.h>
- #include <alloc.h>
- #include <stdlib.h>
- #include <string.h>
- #include "twindow.h"
- #include "keys.h"
-
- #define TABS 4
- #define SCRNHT 25
- #define SCRNWIDTH 80
- #define ON 1
- #define OFF 0
-
- - 34 -
- #define ERROR -1
-
- /* ½«¬á½∞¡δÑ »α«Γ«Γ¿»δ */
- redraw(WINDOW *wnd);
- wframe(WINDOW *wnd);
- dtitle(WINDOW *wnd);
- int *waddr(WINDOW *wnd, int x, int y);
- vswap(WINDOW *wnd);
- vsave(WINDOW *wnd);
- vrstr(WINDOW *wnd);
- add_list(WINDOW *wnd);
- beg_list(WINDOW *wnd);
- remove_list(WINDOW *wnd);
- insert_list(WINDOW *wl, WINDOW *w2);
- #ifndef FASTWINDOWS
- int dget(WINDOW *wnd, int x, int y);
- verify_wnd(WINDOW **wl);
- #endif
-
- /* ¼áßß¿ó ¡áí«α«ó ß¿¼ó«½«ó αἬ¿ */
- struct {
- int nw, ne, se, sw, side, line;
- } wcs[] = {
- {218,191,217,192,179,196}, /* «ñ¿¡áα¡á∩ ½¿¡¿∩ */
- {201,187,188,200,186,205}, /* ñó«⌐¡á∩ ½¿¡¿∩ */
- {214,183,189,211,186,196}, /* «ñ¿¡áα¡δ⌐ óÑασ, ñó«⌐¡δÑ í«¬á */
- {213,184,190,212,179,205}, /* ñó«⌐¡«⌐ óÑασ, «ñ¿¡áα¡δÑ í«¬á */
- {194,194,217,192,179,196}, /* óδΓὬ¿óáѼ«Ñ 󡿺 ¼Ñ¡ε */
- };
-
-
- /* ú«½«óá ¿ σó«ßΓ ßó∩ºá¡¡«ú« ß»¿ß¬á «¬«¡¡δσ ßΓαπ¬Γπα */
- WINDOW *listhead = NULL;
- WINDOW *listtail = NULL;
- int VSG; /* áñαÑß ó¿ñÑ«ßÑú¼Ñ¡Γá */
-
- /* ß«ºñá¡¿Ñ ¡«ó«ú« «¬¡á */
-
- - 35 -
- WINDOW *establish_window(x, y, h, w)
- {
- WINDOW *wnd;
-
- VSG = (vmode() == 7 ? 0xb000 : 0xb800);
- if ((wnd = (WINDOW *) malloc(sizeof (WINDOW))) == NULL)
- return NULL;
- /* »áαá¼ÑΓαδ «úαá¡¿τÑ¡¿⌐ */
- WTITLE = "";
- HEIGHT = min(h, SCRNHT);
- WIDTH = min(w, SCRNWIDTH);
- COL = max(0, min(x, SCRNWIDTH-WIDTH));
- ROW = max(0, min(y, SCRNHT-HEIGHT));
- WCURS = 0;
- SCROLL = 0;
- SELECT = 1;
- BTYPE = 0;
- VISIBLE = HIDDEN = 0;
- PREV = NEXT = NULL;
- FHEAD = FTAIL = NULL;
- WBORDER=WNORMAL=PNORMAL=WTITLEC =
- clr(BLACK, WHITE, BRIGHT);
- WACCENT = clr(WHITE, BLACK, DIM);
- if ((SAV = malloc(WIDTH * HEIGHT * 2)) == (char *) 0)
- return NULL;
- add_list(wnd);
- #ifndef FASTWINDOWS
- clear_window(wnd);
- wframe(wnd);
- #endif
- return wnd;
- }
-
- /* πßΓá¡«ó¿Γ∞ αá¼¬π «¬¡á */
- void set_border(WINDOW *wnd, int btype)
- {
- if (verify_wnd(&wnd)) {
-
- - 36 -
- BTYPE = btype;
- redraw(wnd);
- }
- }
-
- /* πßΓá¡«ó¿Γ∞ µóÑΓá */
- void set_colors(WINDOW *wnd,int area, int bg, int fg, int inten)
- {
- if (vmode() == 7) {
- if (bg != WHITE && bg != BLACK)
- return;
- if (fg != WHITE && fg != BLACK)
- return;
- }
- if (verify_wnd(&wnd)) {
- if (area == ALL)
- while (area)
- WCOLOR [--area] = clr(bg, fg, inten);
- else
- WCOLOR [area] = clr(bg, fg, inten);
- redraw(wnd);
- }
- }
-
- /* πßΓá¡«ó¿Γ∞ ∩ᬫßΓ∞ «¬¡á */
- void set_intensity(WINDOW *wnd, int inten)
- {
- int area = ALL;
-
- if (verify_wnd(&wnd)) {
- while (area) {
- WCOLOR [--area] &= ~BRIGHT;
- WCOLOR [area] |= inten;
- }
- redraw(wnd);
- }
- }
-
- - 37 -
-
- /* πßΓá¡«ó¿Γ∞ ºáú«½«ó«¬ */
- void set_title(WINDOW *wnd, char *title)
- {
- if (verify_wnd(&wnd)) {
- WTITLE = title;
- redraw(wnd);
- }
- }
-
- /* »ÑαÑóδñáΓ∞ «¬¡« »α¿ ¿º¼Ñ¡Ñ¡¿¿ áΓα¿íπΓá */
- static redraw(WINDOW *wnd)
- {
- #ifndef FASTWINDOWS
- int x, y, chat, atr;
-
- for (y = 1; y < HEIGHT-1; y++)
- for (x = 1; x < WIDTH-1; x++) {
- chat = dget(wnd, x, y);
- atr = (((chat>>8)&255) ==
- PNORMAL ? WNORMAL : WACCENT);
- displ(wnd, x, y, chat&255, atr);
- }
- wframe(wnd);
- #endif
- PNORMAL = WNORMAL;
- }
-
- /* óδñáΓ∞ ß«ºñá¡¡«Ñ «¬¡« */
- void display_window(WINDOW *wnd)
- {
- if (verify_wnd(&wnd) && !VISIBLE) {
- VISIBLE = 1;
- #ifdef FASTWINDOWS
- if (HIDDEN) {
- HIDDEN = 0;
- vrstr(wnd);
-
- - 38 -
- }
- else {
- vsave(wnd);
- clear_window(wnd);
- wframe(wnd);
- }
- #else
- vswap(wnd);
- #endif
- }
- }
-
- /* ºá¬αδΓ∞ óßÑ «¬¡á */
- void close_all()
- {
- WINDOW *sav, *wnd = listtail;
-
- while (wnd) {
- sav = PREV;
- delete_window(wnd);
- wnd = sav;
- }
- }
-
- /* πñ὿Γ∞ «¬¡« */
- void delete_window(WINDOW *wnd)
- {
- if (verify_wnd(&wnd)) {
- hide_window(wnd);
- free(SAV);
- remove_list(wnd); /* πñ὿Γ∞ «¬¡« ¿º ß»¿ß¬á */
- free(wnd);
- }
- }
-
- /* ߬αδΓ∞ «¬¡« */
- void hide_window(WINDOW *wnd)
-
- - 39 -
- {
- if (verify_wnd(&wnd) && VISIBLE) {
- #ifndef FASTWINDOWS
- vswap(wnd);
- #else
- vrstr(wnd);
- #endif
- HIDDEN = 1;
- VISIBLE = 0;
- }
- }
-
- #ifndef FASTWINDOWS
- /* »ÑαѼÑΘÑ¡¿Ñ «¬¡á ó Ñú« 3-σ ¼Ñα¡«¼ »½á¡Ñ */
- void repos_wnd(WINDOW *wnd, int x, int y, int z)
- {
- WINDOW *twnd;
- int x1, y1, chat;
- if (!verify_wnd(&wnd))
- return;
- twnd = establish_window(x+COL, y+ROW, HEIGHT, WIDTH);
- twnd -> _tl = WTITLE;
- twnd -> btype = BTYPE;
- twnd -> wcolor[BORDER] = WBORDER;
- twnd -> wcolor[TITLE] = WTITLEC;
- twnd -> wcolor[ACCENT] = WACCENT;
- twnd -> wcolor[NORMAL] = WNORMAL;
- twnd -> _wsp = SCROLL;
- twnd -> _cr = WCURS;
- if (z != 1) {
- remove_list(twnd);
- if (z == 0)
- insert_list(twnd, wnd);
- else
- beg_list(twnd);
- }
- for (y1 = 0; y1 < twnd->_wh; y1++)
-
- - 40 -
- for (x1 = 0; x1 < twnd->_ww; x1++) {
- chat = dget(wnd, x1, y1);
- displ(twnd, x1, y1, chat&255, (chat>>8)&255);
- }
- twnd->_wv = 1;
- vswap(twnd);
- hide_window(wnd);
- free(SAV);
- remove_list(wnd);
- *wnd = *twnd;
- insert_list(wnd, twnd);
- remove_list(twnd);
- free(twnd);
- }
- #endif
-
- /* «τ¿ßΓ¿Γ∞ «í½áßΓ∞ «¬¡á */
- void clear_window(WINDOW *wnd)
- {
- register int x1, y1;
-
- if (verify_wnd(&wnd))
- for (y1 = 1; y1 < HEIGHT-1; y1++)
- for (x1 = 1; x1 < WIDTH-1; x1++)
- displ(wnd,x1, y1, ' ', WNORMAL);
- }
-
- /* ¿º«íαếΓ∞ «¬¡« */
- static wframe(WINDOW *wnd)
- {
- register int x1, y1;
-
- if (!verify_wnd(&wnd))
- return;
- /* ºáú«½«ó«¬ «¬¡á */
- displ(wnd,0, 0, NW, WBORDER);
- dtitle(wnd);
-
- - 41 -
- displ(wnd,WIDTH-1, 0, NE, WBORDER);
- /* í«¬«óδÑ ßΓ«α«¡δ «¬¡á */
- for (y1 = 1; y1 < HEIGHT-1; y1++) {
- displ(wnd,0, y1, SIDE, WBORDER);
- displ(wnd,WIDTH-1, y1, SIDE, WBORDER);
- }
- /* ¡¿º «¬¡á */
- displ(wnd,0, y1, SW, WBORDER);
- for (x1 = 1; x1 < WIDTH-1; x1++)
- displ(wnd,x1, y1, LINE, WBORDER);
- displ(wnd,x1, y1, SE, WBORDER);
- }
-
- /* óδñáΓ∞ ºáú«½«ó«¬ «¬¡á */
- static dtitle(WINDOW *wnd)
- {
- int x1 = 1, i, ln;
- char *s = WTITLE;
-
- if (!verify_wnd(&wnd))
- return;
- if (s) {
- ln = strlen(s);
- if (ln > WIDTH-2)
- i = 0;
- else
- i = ((WIDTH-2-ln) / 2);
- if (i > 0)
- while (i--)
- displ(wnd, x1++, 0, LINE, WBORDER);
- while (*s && x1 < WIDTH-1)
- displ(wnd, x1++, 0, *s++, WTITLEC);
- }
- while (x1 < WIDTH-1)
- displ(wnd, x1++, 0, LINE, WBORDER);
- }
-
-
- - 42 -
- /* «¬«¡¡«-«α¿Ñ¡Γ¿α«óá¡¡á∩ printf */
- void wprintf(WINDOW *wnd, char *ln, ...)
- {
- char dlin [100], *dl = dlin;
-
- if (verify_wnd(&wnd)) {
- va_list ap;
- va_start(ap, ln);
- vsprintf(dlin, ln, ap);
- va_end(ap);
- while (*dl)
- wputchar(wnd, *dl++);
- }
- }
-
- /* ºá»¿ßáΓ∞ ß¿¼ó«½ ó «¬¡« */
- void wputchar(WINDOW *wnd, int c)
- {
- if (!verify_wnd(&wnd))
- return;
- switch (c) {
- case '\n':
- if (SCROLL == HEIGHT-3)
- scroll(wnd, UP);
- else
- SCROLL++;
- WCURS = 0;
- break;
- case '\t':
- do displ(wnd,(WCURS++)+3,SCROLL+1,'',WNORMAL);
- while ((WCURS%TABS) && (WCURS+1) < WIDTH-1);
- break;
- default: ;
- if ((WCURS+1) < WIDTH-1) {
- displ(wnd, WCURS+1, SCROLL+1, c, WNORMAL);
- WCURS++;
- }
-
- - 43 -
- break;
- }
- }
-
- /* πßΓá¡«ó¿Γ∞ ¬παß«α «¬¡á */
- void wcursor(WINDOW *wnd, int x, int y)
- {
- if (verify_wnd(&wnd) && x < WIDTH-1 && y < HEIGHT-1) {
- WCURS = x;
- SCROLL = y;
- cursor(COL+x+1, ROW+y+1);
- }
- }
-
- /* »«ºó«½∩ÑΓ »«½∞º«óáΓÑ½ε »α«¿ºóÑßΓ¿ «¬«¡¡δ⌐ óδí«α */
- int get_selections(WINDOW *wnd, int s, char *keys)
- {
- int c = 0, ky;
- if (!verify_wnd(&wnd))
- return 0;
- SELECT = s;
- while (c != ESC && c != '\r' && c != BS && c != FWD) {
- accent(wnd);
- c = get_char();
- deaccent(wnd);
- switch (c) {
- case UP: if (SELECT > 1)
- SELECT--;
- else
- SELECT = SCROLL+1;
- break;
- case DN: if (SELECT < SCROLL+1)
- SELECT++;
- else
- SELECT = 1;
- break;
- case '\r':
-
- - 44 -
- case ESC:
- case FWD:
- case BS: break;
- default: if (keys) {
- ky = 0;
- while (*(keys + ky)) {
- if (*(keys+ky)==toupper(c) ||
- *(keys+ky)==tolower(c))
- return ky + 1;
- ky++;
- }
- }
- break;
- }
- }
- return c == '\r' ? SELECT : c == ESC ? 0 : c;
- }
-
- union REGS rg;
-
-
- /* »α«¬απτ¿óáÑΓ ß«ñÑন¼«Ñ «¬¡á óóÑασ ¿½¿ 󡿺 */
- void scroll(WINDOW *wnd, int dir)
- {
- int row = HEIGHT-1, col, chat;
-
- if (!verify_wnd(&wnd))
- return;
- if (NEXT == NULL && HEIGHT > 3 && VISIBLE) {
- rg.h.ah = dir == UP ? 6 : 7;
- rg.h.al = 1;
- rg.h.bh = WNORMAL;
- rg.h.cl = COL + 1;
- rg.h.ch = ROW + 1;
- rg.h.dl = COL + WIDTH - 2;
- rg.h.dh = ROW + HEIGHT - 2;
- int86(16, &rg, &rg);
-
- - 45 -
- return;
- }
- if (dir == UP) {
- for (row = 2; row < HEIGHT-1; row++)
- for (col = 1; col < WIDTH-1; col++) {
- chat = dget(wnd, col, row);
- displ(wnd,col,row-1,chat&255,(chat>>8)&255);
- }
- for (col = 1; col < WIDTH-1; col++)
- displ(wnd, col, row-1, ' ', WNORMAL);
- }
- else {
- for (row = HEIGHT-2; row > 1; --row)
- for (col = 1; col < WIDTH-1; col++) {
- chat = dget(wnd, col, row-1);
- displ(wnd,col,row,chat&255,(chat>>8)&255);
- }
- for (col = 1; col < WIDTH-1; col++)
- displ(wnd, col, row, '', WNORMAL);
- }
- }
-
- #ifndef FASTWINDOWS
- /* óδτ¿ß½∩ÑΓ áíα¿ß «Γ«íαáªáѼ«ú« ß¿¼ó«½á «¬¡á */
-
- static int *waddr(WINDOW *wnd, int x, int y)
- {
- WINDOW *nxt = NEXT;
- int *vp;
-
- if (!VISIBLE)
- return (int *) (SAV+y*(WIDTH*2)+x*2);
- x += COL;
- y += ROW;
- while (nxt) {
- if (nxt->_wv)
- if (x >= nxt->_wx && x <= nxt->_wx + nxt->_ww-1)
-
- - 46 -
- if (y >= nxt->_wy &&
- y <= nxt->_wy + nxt->_wh-1) {
- x -= nxt->_wx;
- y -= nxt->_wy;
- vp = (int *)
- ((nxt->_ws) +y*(nxt->_ww*2)+x*2);
- return vp;
- }
- nxt = nxt->_nx;
- }
- return NULL;
- }
-
- /* óδñáΓ∞ ß¿¼ó«½ ó «¬¡« */
- void displ(WINDOW *wnd, int x, int y, int ch, int at)
- {
-
- int *vp;
- int vch = (ch&255)|(at<<8);
-
- if ((vp = waddr(wnd, x, y)) != NULL)
- *vp = vch;
- else
- vpoke(VSG,vad(x+COL,y+ROW),vch);
- }
-
- /* »«½πτ¿Γ∞ «Γ«íαáªÑ¡¡δ⌐ ß¿¼ó«½ ¿º «¬¡á */
- static int dget(WINDOW *wnd, int x, int y)
- {
- int *vp;
-
- if ((vp = waddr(wnd, x, y)) != NULL)
- return *vp;
- return vpeek(VSG,vad(x+COL,y+ROW));
- }
-
- /* ó¿ñÑ«Σπ¡¬µ¿¿ ¡¿º¬«ú« πα«ó¡∩ */
-
- - 47 -
-
- /* «í¼Ñ¡¿óáÑΓ ß«ñÑন¼«Ñ ó¿ñÑ««íαáºá ¿ íπΣÑαá ß«σαá¡Ñ¡¿∩ */
- static vswap(WINDOW *wnd)
- {
- int x, y, chat;
- int *bf = (int *) SAV;
-
- for (y = 0; y < HEIGHT; y++)
- for (x = 0; x < WIDTH; x++) {
- chat = *bf;
- *bf++ = dget(wnd, x, y);
- displ(wnd, x, y, chat&255, (chat>>8)&255);
- }
- }
-
- #else
-
- /* ß«σαá¡∩ÑΓ ó¿ñÑ«»á¼∩Γ∞ ó íπΣÑαÑ ß«σαá¡Ñ¡¿∩ */
- static vsave(WINDOW *wnd)
- {
- int x, y;
- int *bf = (int *) SAV;
-
- for (y = 0; y < HEIGHT; y++)
- for (x = 0; x < WIDTH; x++)
- *bf++ = vpeek(VSG, vad(x+COL, y+ROW));
- }
-
- /* ó«ßßΓá¡áó½¿óáÑΓ ó¿ñÑ«»á¼∩Γ∞ ¿º íπΣÑαá ß«σαá¡Ñ¡¿∩ */
- static vrstr(WINDOW *wnd)
- {
- int x, y;
- int *bf = (int *) SAV;
-
- for (y = 0; y < HEIGHT; y++)
- for (x = 0; x < WIDTH; x++)
- vpoke(VSG,vad(x+COL, y+ROW), *bf++);
-
- - 48 -
- }
- #endif
-
- /* ºá¼Ñ¡∩ÑΓ ∩ᬫßΓ∞ ßΓ᫬¿, π¬áºδóáѼ«⌐ SELECT */
- void acline(WINDOW *wnd, int set)
- {
- int x, ch;
-
- if (!verify_wnd(&wnd))
- return;
- for (x = 1; x < WIDTH - 1; x++) {
- ch = dget(wnd, x, SELECT) & 255;
- displ(wnd, x, SELECT, ch, set);
- }
- }
-
- /* öôìèûêê ÄüÉÇüÄÆèê æÅêæèÇ */
-
- /* ñ«íáó½∩ÑΓ «¬¡« ó ¬«¡Ñµ ß»¿ß¬á */
- static add_list(WINDOW *wnd)
- {
- if (listtail) {
- PREV = listtail;
- listtail->_nx = wnd;
- }
- listtail = wnd;
- if (!listhead)
- listhead = wnd;
- }
-
- /* ñ«íáó½∩ÑΓ «¬¡« ó ¡áτὫ ß»¿ß¬á */
- static beg_list(WINDOW *wnd)
- {
- if (listhead) {
- NEXT = listhead;
- listhead->_pv = wnd;
- }
-
- - 49 -
- listhead = wnd;
- if (!listtail)
- listtail = wnd;
- }
-
- /* πñá½∩ÑΓ «¬¡« ¿º ß»¿ß¬á */
- static remove_list(WINDOW *wnd)
- {
- if (NEXT)
- NEXT->_pv = PREV;
- if (PREV)
- PREV->_nx = NEXT;
- if (listhead == wnd)
- listhead = NEXT;
- if (listtail == wnd)
- listtail = PREV;
- NEXT = PREV = NULL;
- }
-
- /* óßΓáó½∩ÑΓ w 1 »«ß½Ñ w 2 */
- static insert_list(WINDOW *w1, WINDOW *w2)
- {
- w1->_pv = w2;
- w1->_nx = w2->_nx;
- w2->_nx = w1;
- if (w1->_nx == NULL)
- listtail = w1;
- else
- w1->_nx->_pv = w1;
- }
- #ifndef FASTWINDOWS
- /* »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ «¬¡á ó ß»¿ß¬Ñ */
- static verify_wnd(WINDOW **w1)
- {
- WINDOW *wnd;
-
- wnd = listhead;
-
- - 50 -
- if (*w1 == NULL)
- *w1 = listtail;
- else {
- while (wnd != NULL) {
- if (*w1 == wnd)
- break;
- wnd = NEXT;
- }
- }
- return wnd != NULL;
- }
- #endif
-
- WINDOW *ewnd = NULL;
-
- /* ß««íΘÑ¡¿Ñ «í «Φ¿í¬áσ */
- void error_message(char *s)
- {
- ewnd = establish_window(50, 22, 3, max(10, strlen(s)+2));
- set_colors(ewnd, ALL, RED, YELLOW, BRIGHT);
- set_title(ewnd, " ERROR! ");
- display_window(ewnd);
- wprintf(ewnd, s);
- putchar(BELL);
- }
-
- void clear_message()
- {
- if (ewnd)
- delete_window(ewnd);
- ewnd = NULL;
- }
-
-
-
- Ä»¿ßá¡¿Ñ »α«úαá¼¼δ: twindow.c
- -----------------------------
-
- - 51 -
-
- äá½ÑÑ «»¿ßδóáÑΓß∩ ¿ßσ«ñ¡á∩ »α«úαá¼¼á twindow.c. ä½∩ ¬áªñ«⌐
- Σπ¡¬µ¿¿ «»¿ßδóáÑΓß∩, τΓ« «¡á ñѽáÑΓ ¿ ¬á¬ αáí«ΓáÑΓ. Åα«úαá¼¼¿ßΓ
- ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ φΓ¿ «»¿ßá¡¿∩ ñ½∩ »«¡¿¼á¡¿∩ ΓѬßΓá »α«úαá¼¼δ.
-
- ÄíΩ∩ó½Ñ¡¿∩ ó¡ÑΦ¡¿σ ñá¡¡δσ ó twindow.c ó¬½ετáεΓ »α«Γ«Γ¿»δ ñ½∩
- ¬áªñ«⌐ Σπ¡¬µ¿¿, ½«¬á½∞¡δÑ ó ¿ßσ«ñ¡«¼ Σá⌐½Ñ, ¼áßß¿ó ßΓαπ¬Γπα ñ½∩
- «»αÑñѽѡ¿∩ »∩Γ¿ Γ¿»«ó αἬ¿ «¬¡á, ú«½«ó¡«⌐ ¿ σó«ßΓ«ó«⌐ π¬áºáΓѽ¿
- ñ½∩ ß»¿ß¬á ßΓαπ¬Γπα WINDOW.
-
- Éá¼¬á «¬¡á π»αáó½∩ÑΓß∩ φ½Ñ¼Ñ¡Γ«¼ ßΓαπ¬Γπαδ WINDOW, ¬«Γ«αá∩
- πßΓá¡áó½¿óáÑΓ «¬¡«. ¥Γ«Γ φ½Ñ¼Ñ¡Γ ∩ó½∩ÑΓß∩ µÑ½«τ¿ß½Ñ¡¡δ¼ ß¼ÑΘÑ¡¿Ñ¼
- ó Γáí½¿µÑ Γ¿»«ó αἬ¿. éσ«ñ, ¡á ¬«Γ«αδ⌐ π¬áºδóáÑΓ ß¼ÑΘÑ¡¿Ñ,
- ß«ñÑαª¿Γ ΦÑßΓ∞ º¡áτÑ¡¿⌐, ¬áªñ«Ñ ¿º ¬«Γ«αδσ »αÑñßΓáó½∩ÑΓ «ñ¡π ¿º
- ßΓ«α«¡ ¿½¿ πº½«ó «¬¡á. ÅÑαó«Ñ º¡áτÑ¡¿Ñ «»αÑñѽ∩ÑΓ óÑασ¡¿⌐ ½Ñóδ⌐
- ¿½¿ ßÑóÑα«-ºá»áñ¡δ⌐ πú«½. ê¼∩ »ÑαѼѡ¡«⌐ (nw, ne, se, sw)
- ß««íΘáÑΓ óá¼, ¬á¬«⌐ πú«½ «»αÑñѽ∩ÑΓß∩. ûѽ«Ñ τ¿ß½« side
- «Γ¡«ß¿Γß∩ ¬ óÑαΓ¿¬á½∞¡δ¼ ßΓ«α«¡á¼ αἬ¿; µÑ½«Ñ τ¿ß½« line
- ß««ΓóÑΓßΓóπÑΓ óÑασ¡Ñ⌐ ¿ ¡¿ª¡Ñ⌐ ú«α¿º«¡Γá½∞¡δ¼ ½¿¡¿∩¼ αἬ¿.
- ç¡áτÑ¡¿∩ «Γ¡«ß∩Γß∩ ¬ ß¿¼ó«½á¼ ¿º ¡áí«αá úαáΣ¿τÑ߬¿σ ß¿¼ó«½«ó
- Å¥éî.
-
- äóÑ WINDOW-ßß佬¿ listhead ¿ listtail ∩ó½∩εΓß∩ ú«½«ó¡δ¼ ¿
- σó«ßΓ«óδ¼ π¬áºáΓѽ∩¼¿ ñ½∩ ß»¿ß¬á «¬«¡. è«úñá ß«ºñáεΓß∩ «¬¡á, «¡¿
- ñ«íáó½∩εΓß∩ ¬ φΓ«¼π ß»¿ß¬π. ÅÑαó«¡áτá½∞¡« φΓ¿ ñóá π¬áºáΓѽ∩ αáó¡δ
- NULL. è«úñá ß«ºñáÑΓß∩ »Ñαó«Ñ «¬¡«, óδñѽ∩ÑΓß∩ »á¼∩Γ∞ ñ½∩
- ßΓαπ¬Γπαδ WINDOW, ¿ ÑÑ áñαÑß ¬«»¿απÑΓß∩ ó «íá π¬áºáΓѽ∩. ô ß»¿ß¬á
- ¿¼ÑÑΓß∩ ú«½«óá, π¬áºδóáεΘá∩ ¡á »Ñαó«Ñ «¬¡« ß»¿ß¬á, ¿ σó«ßΓ,
- π¬áºδóáεΘ¿⌐ ¡á »«ß½Ññ¡ÑÑ. è«úñá ß«ºñáÑΓß∩ óΓ«α«Ñ «¬¡«, Ñú« áñαÑß
- ¬«»¿απÑΓß∩ ó σó«ßΓ«ó«⌐ π¬áºáΓѽ∞. èα«¼Ñ Γ«ú«, áñαÑß óΓ«α«ú« «¬¡á
- ºá»¿ßδóáÑΓß∩ ó π¬áºáΓѽ∞ _nx ó »Ñαó«⌐ ßΓαπ¬ΓπαÑ WINDOW, á áñαÑß
- »Ñαó«⌐ ºá»¿ßδóáÑΓß∩ ó π¬áºáΓѽ∞ _pv óΓ«α«⌐. ⫽«óá ß»¿ß¬á
- π¬áºδóáÑΓ ¡á »Ñαó«Ñ «¬¡«, ¬«Γ«α«Ñ π¬áºδóáÑΓ ¡á óΓ«α«Ñ ¿ Γ.ñ.
- òó«ßΓ ß»¿ß¬á π¬áºδóáÑΓ ¡á »«ß½Ññ¡ÑÑ «¬¡«. èáªñ«Ñ «¬¡« ΓᬪÑ
- π¬áºδóáÑΓ ¡á ßó«Ñú« »αÑñΦÑßΓóÑ¡¡¿¬á ó µÑ»¿, ß½Ññ«óáΓѽ∞¡«, ß»¿ß«¬
- ∩ó½∩ÑΓß∩ ñóπ¡á»αáó½Ñ¡¡«⌐ ßΓαπ¬Γπα«⌐ ñá¡¡δσ, ¡áºδóáѼ«⌐ ñóπßó∩º¡δ¼
- ß»¿ß¬«¼. (ä½∩ º¡á¬«¼ßΓóá ß« ß»¿ß¬«ó묨 ßΓαπ¬ΓπαἿ ñá¡¡δσ ß¼.:
-
- - 52 -
- Brady. æ Development Tools for the IBM PC. - 1986.).
-
- öπ¡¬µ¿∩ establish_window ¿¡¿µ¿á½¿º¿απÑΓ »ÑαѼѡ¡πε VSG
- áñαÑß«¼ ßÑú¼Ñ¡Γá ó¿ñÑ«»á¼∩Γ¿. öπ¡¬µ¿∩ αáß»αÑñѽ∩ÑΓ »á¼∩Γ∞ ñ½∩
- ßΓαπ¬Γπαδ WINDOW ¿ ¿¡¿µ¿á½¿º¿απÑΓ φΓπ ßΓαπ¬Γπα𠫬«¡¡δ¼¿
- σáαá¬ΓÑα¿ßΓ¿¬á¼¿, »α¿¡¿¼áÑ¼δ¼¿ »« π¼«½τá¡¿ε, á Γá¬ªÑ αẼÑα«¼ ¿
- ¬««αñ¿¡áΓἿ, ºáñá¡¡δ¼¿ »α¿ ó맮óÑ Σπ¡¬µ¿¿. Ä¡á óδñѽ∩ÑΓ »á¼∩Γ∞
- ñ½∩ íπΣÑαá ß«σαá¡Ñ¡¿∩ ó¿ñÑ«»á¼∩Γ¿ ¿ ºá»¿ßδóáÑΓ áñαÑß íπΣÑαá ó
- ßΓαπ¬Γπαπ WINDOW. Å«ß½Ñ ¿¡¿µ¿á½¿ºáµ¿¿ ßΓαπ¬Γπαδ Σπ¡¬µ¿∩ óδºδóáÑΓ
- add_list ñ½∩ ñ«íáó½Ñ¡¿∩ ßΓαπ¬Γπαδ ¬ ß»¿ß¬π «¬«¡. ÆÑ¬ßΓ«óá∩
- «í½áßΓ∞ «¬¡á «τ¿ΘáÑΓß∩, ¿ «íαẠ«¬¡á óδñѽ∩ÑΓß∩, Ñß½¿
- «íαáíáΓδóáεΓß∩ ß½«Ñ¡δÑ «¬¡á. ¥Γ¿ Σπ¡¬µ¿¿ «»Ñα¿απεΓ ó íπΣÑαÑ
- ß«σαá¡Ñ¡¿∩, »«φΓ«¼π «¬¡« »«¬á ¡Ñ ¿º«íαáªáÑΓß∩. öπ¡¬µ¿∩ establish_
- window ó«ºóαáΘáÑΓ áñαÑß ßΓαπ¬Γπαδ WINDOW ó Γ«τ¬π ó맮óá.
-
- öπ¡¬µ¿¿ set_border, set_colors, set_intensity ¿ set_title
- ¼«ñ¿Σ¿µ¿απεΓ σáαá¬ΓÑα¿ßΓ¿¬¿ ß«ºñá¡¡«ú« «¬¡á. æ¡áτá½á «¡¿ óδºδóáεΓ
- verify_wnd ñ½∩ »α«óÑન Γ«ú«, τΓ« »α¿ ó맮óÑ »ÑαÑñá¡ áñαÑß
- ß«ºñá¡¡«ú« «¬¡á. çáΓѼ «¡¿ ¼«ñ¿Σ¿µ¿απεΓ ºáñá¡¡δ⌐ áΓα¿íπΓ. é ¬«¡µÑ
- «¡¿ óδºδóáεΓ Σπ¡¬µ¿ε redraw ñ½∩ ºá»¿ß¿ ¿º¼Ñ¡Ñ¡¿⌐ ¡á φ¬αá¡.
-
- öπ¡¬µ¿∩ redraw »ÑαÑóδñáÑΓ «¬¡«, Ñß½¿ «íαáíáΓδóáεΓß∩ ß½«Ñ¡δÑ
- «¬¡á.
-