home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-12-05 | 52.7 KB | 1,681 lines |
- âïÇéÇ 8 -- 1 --
- -------
-
- Ä îÇìêÅôïêÉÄéÇìêê ¥èÉÇìÄî ê âàìàÉÇûêê çéôèÇ
- -----------------------------------------------------------------
-
- ìá óßѼ »α«Γ∩ªÑ¡¿¿ φΓ«⌐ ¬¡¿ú¿ ¼δ ¬áß὿ß∞, ó «ß¡«ó¡«¼, ΓÑσ
- áß»Ñ¬Γ«ó »α«úαá¼¼¿α«óá¡¿∩ ¡á æ¿, ¬«Γ«αδÑ ¼«úπΓ ºá¿¡ΓÑαÑß«óáΓ∞
- »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó, τ∞Ñ «ß¡«ó¡«Ñ ºá¡∩Γ¿Ñ
- »α«úαá¼¼¿α«óá¡¿Ñ ¡á æ¿. Æá¬ ¬á¬ 󫺼«ª¡«ßΓ¿ »α«úαá¼¼δ »«
- óºá¿¼«ñÑ⌐ßΓó¿ε ß »«½∞º«óáΓѽѼ τáßΓ« «úαá¡¿τ¿óáεΓß∩
- 󫺼«ª¡«ßΓ∩¼¿, »αÑñßΓáó½Ñ¡¡δ¼¿ ó αἬáσ »«½∞º«óáΓѽ∞߬«ú«
- ¿¡ΓÑαΣÑ⌐ßá, Γ« ó φΓ«⌐ ú½áóÑ ß«ñÑαªáΓß∩ ºáóÑαΦÑ¡¡δÑ ßóÑñÑ¡¿∩, Γá¬
- ߬áºáΓ∞, «¬«¡τáΓѽ∞¡á∩ Γ«τ¬á ºαÑ¡¿∩ ¡á 󫺼«ª¡«ßΓ∞ ¿
- µÑ½Ñß««íαạ«ßΓ∞ ¼á¡¿»π½¿α«óá¡¿∩ ß φ¬αá¡«¼ ñ¿ß»½Ñ∩ »α¿ αáºαáí«Γ¬Ñ
- »«½∞º«óáΓѽ∞߬«ú« ¿¡ΓÑαΣÑ⌐ßá. Äß¡«ó¡«Ñ ó¡¿¼á¡¿Ñ ó φΓ«⌐ ú½áóÑ
- πñѽ∩ÑΓß∩ ó«»α«ßá¼ «Γ«íαáªÑ¡¿∩ αẽ¿τ¡δσ Σαáú¼Ñ¡Γ«ó ΓѬßΓá ó
- αạδσ µóÑΓáσ. ä«»«½¡¿Γѽ∞¡« ó φΓ«⌐ ú½áóÑ αáßß¼áΓα¿óáεΓß∩
- ¡Ñ¬«Γ«αδÑ ñαπú¿Ñ ó«»α«ßδ »α«úαá¼¼¿α«óá¡¿∩ »«½∞º«óáΓѽ∞߬«ú«
- ¿¡ΓÑαΣÑ⌐ßá ΓᬿÑ, ¬á¬ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá ¿ Σ«α¼δ ¬παß«αá,
- ß¬α«½½¿¡ú (»α«¬απΓ¬á) τáßΓ¿ ΓѬßΓá, ß«σαá¡Ñ¡¿Ñ ß«ñÑন¼«ú« φ¬αá¡á
- ó ó¿ñÑ ñ¿ß¬«ó«ú« Σá⌐½á. êß»«½∞º«óá¡¿Ñ ß« ó¬πß«¼ ºóπ¬«óδσ
- 󫺼«ª¡«ßΓÑ⌐ ¬«¼»∞εΓÑαá »«ºó«½∩ÑΓ ó º¡áτ¿Γѽ∞¡«⌐ ¼ÑαÑ "«ª¿ó¿Γ∞"
- αáí«Γπ »«½∞º«óáΓѽ∩ ß óáΦÑ⌐ »α«úαá¼¼«⌐, á Γá¬ªÑ á¬µÑ¡Γ¿α«óáΓ∞
- ó¡¿¼á¡¿Ñ »«½∞º«óáΓѽ∩ ¡á α∩ñÑ ¼«¼Ñ¡Γ«ó ¿ ß¿Γπᵿ⌐, 󫺡¿¬áεΘ¿σ ó«
- óαѼ∩ αáí«Γδ. é ßó∩º¿ ß φΓ¿¼ ó ú½áóπ ó¬½ετÑ¡ »áαáúαáΣ, »«∩ß¡∩εΘ¿⌐
- 󫺼«ª¡«ßΓ¿ »«½∞º«óáΓѽ∩ »« úÑ¡Ñαᵿ¿ ºóπ¬«ó αẽ¿τ¡δσ τáßëà ¿
- ß«ºñá¡¿ε αẽ¿τ¡δσ ºóπ¬«óδσ φΣΣÑ¬Γ«ó ß ¿ß»«½∞º«ó᡿Ѽ ñ¿¡á¼¿¬á
- ¬«¼»∞εΓÑαá.
-
- Å«ñ»α«úαá¼¼δ, «»¿ßá¡¡δÑ ó φΓ«⌐ ú½áóÑ, ∩ó½∩εΓß∩
- ¼áΦ¿¡¡«-ºáó¿ß¿¼δ¼¿. Ä¡¿ ¼«úπΓ Σπ¡¬µ¿«¡¿α«óáΓ∞ ¡á IBM PC, XT, AT,
- PS/2 ¿ ß«ó¼ÑßΓ¿¼δσ ß ¡¿¼¿ ¼«ñѽ∩σ. ü«½∞Φ¿¡ßΓó« ¿º »«ñ»α«úαá¼¼
- ΓαÑíπεΓ ¡á½¿τ¿∩ ó óáΦÑ⌐ ¬«¡Σ¿úπαᵿ¿ ¬«¼»∞εΓÑαá µóÑΓ¡«ú« ñ¿ß»½Ñ∩
- (áñá»ΓÑαá). àß½¿ óδ ¿¼ÑÑΓÑ ¡Ñß«ó¼ÑßΓ¿¼δ⌐ ß óδΦÑ»ÑαÑτ¿ß½Ñ¡¡δ¼¿
- ¼«ñѽ∩¼¿ ¬«¼»∞εΓÑα, Γ« óá¼ ¡Ñ«íσ«ñ¿¼« íπñÑΓ ó¡ÑßΓ¿ ó »«ñ»α«úαá¼¼δ
- ß««ΓóÑΓßΓóπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 2 --
-
-
- êæÅÄï£çÄéÇìêà ûéàÆÇ é ÆàèæÆÄéÄî Éàåêîà
- -----------------------------------------------------------------
-
- Éá¡ÑÑ óδ ¼«ú½¿ ó¿ñÑΓ∞ óѽ¿¬«½Ñ»¡δÑ, »α«ΣÑßß¿«¡á½∞¡«
- ¡á»¿ßá¡¡δÑ »α«úαá¼¼δ, ¬«Γ«αδÑ ¡Ñ ¿ß»«½∞ºπεΓ µóÑΓ«óδÑ ó«º¼«ª¡«ßΓ¿.
- èᬠóδ πªÑ π∩ß¡¿½¿ ¿º â½áóá VIIIδ 1, ßѼÑ⌐ßΓó« ¬«¼»∞εΓÑα«ó PC
- »«ññÑনóáÑΓ αẽ¿τ¡δÑ ó¿ñÑ«αѪ¿¼δ. àß½¿ óδ ¿¼ÑÑΓÑ ó ßó«Ñ⌐
- ß¿ßΓÑ¼Ñ µóÑΓ¡«⌐ áñá»ΓÑα, αѪ¿¼ αáí«Γδ ¬«Γ«α«ú« »« π¼«½τá¡¿ε
- πßΓá¡«ó½Ñ¡ αáó¡δ¼ 3, Γ« φΓ« «º¡áτáÑΓ, τΓ« ߻ѵ¿Σ¿µ¿α«óá¡ µóÑΓ¡«⌐
- αѪ¿¼ «Γ«íαáªÑ¡¿∩ ΓѬßΓá 80*25 ßΓ᫬. Å« π¼«½τá¡¿ε ΓѬßΓ
- «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ ó íѽ«¼ µóÑΓÑ, «ñ¡á¬«, ¿¼ÑÑΓß∩ 󫺼«ª¡«ßΓ∞
- «Γ«íαáªáΓ∞ ΓѬßΓ ó ñαπú¿σ µóÑΓáσ.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 3 --
-
-
- ÇΓα¿íπΓ¡δ⌐ íá⌐Γ ΓѬßΓ«ó«ú« αѪ¿¼á.
- ----------------------------------
-
- èáªñδ⌐ ß¿¼ó«½ «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ ñ¿ß»½Ñ∩ ó ß««ΓóÑΓßΓó¿¿
- ß Ñú« áΓα¿íπΓ¡δ¼ íá⌐Γ«¼, «»αÑñѽ∩εΘ¿¼ ¬á¬ ¿¼Ñ¡¡« «Γ«íαáªáÑΓß∩
- ß¿¼ó«½ (ß¼. ú½áóπ 1). àß½¿ ¬«¼»∞εΓÑα ó¬½ετáÑΓ ó ßÑí∩ µóÑΓ¡«⌐
- áñá»ΓÑα, αáí«ΓáεΘ¿⌐ ó ó¿ñÑ«αѪ¿¼Ñ, «»αÑñѽ∩Ѽ«¼ º¡áτÑ¡¿Ñ¼ 3, Γ«
- ß««ΓóÑΓßΓóπεΘÑÑ º¡áτÑ¡¿Ñ áΓα¿íπΓ¡«ú« íá⌐Γá «»αÑñѽ∩ÑΓ µóÑΓ
- «Γ«íαáªáѼ«ú« ß¿¼ó«½á, µóÑΓ Σ«¡á, ¿¡Γѡ߿ó¡«ßΓ∞ «Γ«íαáªÑ¡¿∩
- ß¿¼ó«½á (πα«óÑ¡∞ ∩ᬫßΓ¿), á Γá¬ªÑ πßΓá¡áó½¿óáÑΓ ¿½¿ «Γ¼Ñ¡∩ÑΓ
- αѪ¿¼ ¼Ñαµá¡¿∩ ß¿¼ó«½á. æ«ßΓáó áΓα¿íπΓ¡«ú« íá⌐Γá »«¬áºá¡ ó
- Æáí½¿µÑ 8.1.
-
- ü¿Γδ 0, 1 ¿ 2 áΓα¿íπΓ¡«ú« íá⌐Γá «»αÑñѽ∩εΓ ¬«¼»«¡Ñ¡Γδ µóÑΓá
- ß¿¼ó«½á. ìá»α¿¼Ñα, Ñß½¿ πßΓá¡«ó½Ñ¡ í¿Γ 0 (º¡áτÑ¡¿Ñ í¿Γá αáó¡« 1),
- Γ« ß¿¼ó«½ «Γ«íαáªáÑΓß∩ ó ú«½πí«¼ µóÑΓÑ. àß½¿ º¡áτÑ¡¿Ñ óßÑσ φΓ¿σ
- í¿Γ«ó ¡Ñ πßΓá¡«ó½Ñ¡«, Γ« ß¿¼ó«½ ∩ó½∩ÑΓß∩ ¡Ñ«Γ«íαáªáѼδ¼.
- çừ¼¡¿ΓÑ, τΓ« µóÑΓá ¡á¬½áñδóáεΓß∩ ñαπú ¡á ñαπúá. àß½¿ º¡áτÑ¡¿∩
- óßÑσ φΓ¿σ í¿Γ«ó πßΓá¡«ó½Ñ¡δ (αáó¡δ 1), ß¿¼ó«½ «Γ«íαáªáÑΓß∩ ó
- íѽ«¼ µóÑΓÑ. àß½¿ óδ πßΓᡫ󿽿 º¡áτÑ¡¿∩ ñóπσ ¿º φΓ¿σ í¿Γ«ó, Γ«
- íπñÑΓ úÑ¡Ñα¿α«óá¡ ½¿í« ∩ᬫ-¬αáß¡δ⌐, ½¿í« ú«½πí«⌐ (µ¿á¡«óδ⌐) µóÑΓ
- ß¿¼ó«½á. ü¿Γδ ß 4 »« 6 ¿ß»«½∞ºπεΓß∩ ñ½∩ πßΓá¡«ó¬¿ µóÑΓá Σ«¡á.
- àß½¿ º¡áτÑ¡¿Ñ φΓ¿σ í¿Γ«ó ¡Ñ πßΓá¡«ó½Ñ¡« (αáó¡« 0), Γ« µóÑΓ Σ«¡á
- íπñÑΓ τÑα¡δ¼, ó »α«Γ¿ó¡«¼ ß½πτáÑ µóÑΓ Σ«¡á «»αÑñѽ∩ÑΓß∩ ó
- ß««ΓóÑΓßΓó¿¿ ß« ߻ѵ¿Σ¿µ¿α«óá¡¡δ¼ º¡áτÑ¡¿Ñ¼ í¿Γ«ó.
-
- ìá ºáαÑ ¼¿¬α«¬«¼»∞εΓÑα«ó αѪ¿¼«¼, ó ¬«Γ«α«¼ ó¿ñѫ߿ßΓѼ«⌐
- «Γ«íαáªá½¿ß∞ ß¿¼ó«½δ »« π¼«½τá¡¿ε, íδ½ αѪ¿¼ »«½¡«⌐ ∩ᬫßΓ¿,
- «ñ¡á¬« ¡áα∩ñπ ß φΓ¿¼ αѪ¿¼«¼ ¿¼Ñ½áß∞ 󫺼«ª¡«ßΓ∞ «Γ«íαáªáΓ∞
- ß¿¼ó«½δ ó αѪ¿¼Ñ »«¡¿ªÑ¡¡«⌐ ∩ᬫßΓ¿. Å«ß½Ñ αÑ὿ºáµ¿¿ IBM PC
- »«½∞º«óáΓѽε íδ½ »αÑñ½«ªÑ¡ á½∞ΓÑα¡áΓ¿ó¡δ⌐ »πΓ∞: Å« π¼«½τá¡¿ε
- «Γ«íαáªÑ¡¿Ñ ß¿¼ó«½«ó ó¿ñѫ߿ßΓѼ«⌐ PC óδ»«½¡∩ÑΓß∩ ó αѪ¿¼Ñ
- "¡«α¼á½∞¡«⌐" ∩ᬫßΓ¿, ¡« óδ ¿¼ÑÑΓÑ ó«º¼«ª¡«ßΓ∞ «Γ«íαáªáΓ∞ ß¿¼ó«½δ
- ó αѪ¿¼Ñ »«óδΦÑ¡¡«⌐ ∩ᬫßΓ¿, πßΓá¡áó½¿óá∩ º¡áτÑ¡¿Ñ 1 ñ½∩
- ß««ΓóÑΓßΓóπεΘÑú« í¿Γá áΓα¿íπΓ¡«ú« íá⌐Γá (í¿Γá »«óδΦÑ¡¡«⌐ ∩ᬫßΓ¿)
- é ñ«íáó«¬ ¬« óßѼπ óδ ¼«ªÑΓÑ πßΓá¡«ó¿Γ∞ αѪ¿¼ ¼Ñαµá¡¿∩ ß¿¼ó«½á,
- πßΓá¡«ó¿ó º¡áτÑ¡¿Ñ ß««ΓóÑΓßΓóπεΘÑú« í¿Γá.
-
-
- Æáí½¿µá 8-1.
- ------------
- æ«ßΓáó áΓα¿íπΓ¡«ú« íá⌐Γá »α¿ αáí«ΓÑ ó 3 ó¿ñÑ«αѪ¿¼Ñ
- _________________________________________________________________
-
- ü¿Γ ôßΓá¡áó½¿óáѼ«Ñ º¡áτÑ¡¿Ñ
-
- 0 ⫽πí«⌐ µóÑΓ ß¿¼ó«½á
- 1 çѽѡδ⌐ µóÑΓ ß¿¼ó«½á
- 2 èαáß¡δ⌐ µóÑΓ ß¿¼ó«½á
- 3 Å«óδΦÑ¡¡á∩ ∩ᬫßΓ∞ ß¿¼ó«½á
- 4 ⫽πí«⌐ µóÑΓ Σ«¡á
- 5 çѽѡδ⌐ µóÑΓ Σ«¡á
- 6 èαáß¡δ⌐ µóÑΓ Σ«¡á
- 7 îÑαµá¡¿Ñ ß¿¼ó«½á
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 4 --
-
-
- _________________________________________________________________
-
-
- é »αÑñδñπΘ¿σ »áαáúαáΣáσ í뫨 αáßß¼«ΓαÑ¡δ Σπ¡¬µ¿¿, ¬«Γ«αδÑ
- óδ»«½¡∩½¿ ßτ¿Γδóá¡¿Ñ ß¿¼ó«½«ó ¡á φ¬αá¡, ¿ß»«½∞ºπ∩ »α¿ φΓ«¼ ¬á¬
- «íαáΘÑ¡¿Ñ ¬ BIOS, Γᬠ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δ⌐ ñ«ßΓπ» ¬ ó¿ñÑ«»á¼∩Γ¿.
- ìÑ»«ßαÑñßΓóÑ¡¡δ⌐ ñ«ßΓπ» ¬ ó¿ñÑ«»á¼∩Γ¿ ∩ó½∩ÑΓß∩ ¡Ñ«íσ«ñ¿¼δ¼
- πß½«ó¿Ñ¼ »«óδΦÑ¡¿∩ ߬«α«ßΓ¿ αÑᬵ¿¿ ºáñáτ ¡á ñÑ⌐ßΓó¿∩
- »«½∞º«óáΓѽ∩. Äñ¡á¬« ¡Ñ»«ßαÑñßΓóÑ¡¡δ⌐ ñ«ßΓπ» ¬ ó¿ñÑ«»á¼∩Γ¿
- º¡áτ¿Γѽ∞¡« ß¡¿ªáÑΓ ó«º¼«ª¡«ßΓ∞ »ÑαÑ¡«ß¿¼«ßΓ¿ »α«úαá¼¼ (¿σ
- ¼«í¿½∞¡«ßΓ∞), á Γá¬ªÑ ∩ó½∩ÑΓß∩ ßÑα∞Ѻ¡«⌐ »«¼Ñσ«⌐ »α¿
- ¿ß»«½∞º«óá¡¿¿ »α«úαá¼¼ ó ¼π½∞Γ¿ºáñáτ¡δσ «»Ñαᵿ«¡¡δσ ß¿ßΓѼáσ
- Γ¿»á OS/2. öπ¡¬µ¿¿, αáßß¼áΓα¿óáѼδÑ ó φΓ«⌐ ú½áóÑ, ¿ß»«½∞ºπεΓ
- 󫺼«ª¡«ßΓ¿ BIOS ¿ ó¿ñÑ«»á¼∩Γ¿ »« Γ«⌐ »α¿τ¿¡Ñ, τΓ« ßἿ »« ßÑíÑ
- φΓ¿ Σπ¡¬µ¿¿ í«½ÑÑ ¼«í¿½∞¡δ ¿, ó ¬«¡Ñτ¡«¼ ¿Γ«úÑ, ñ½∩ π߬«αÑ¡¿∩ ¿σ
- íδßΓα«ñÑ⌐ßΓó¿∩ «íδτ¡« ¡Ñ ΓαÑíπÑΓß∩ ßΓá¡ñáαΓ¡δ⌐ óδó«ñ ¡á ñ¿ß»½Ñ⌐.
- æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞, τΓ« ¿¡Γπ¿Γ¿ó¡« ¿ß»«½∞º«óá¡¿Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡«ú«
- ñ«ßΓπ»á ¬ ó¿ñÑ«»á¼∩Γ¿ ∩ó½∩ÑΓß∩ í«½ÑÑ »αÑñ»«τΓ¿Γѽ∞¡δ¼.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 5 --
-
-
- ÄΓ«íαáªÑ¡¿Ñ ßΓ᫬¿ ó «»αÑñѽѡ¡«¼ µóÑΓÑ.
- ----------------------------------------
-
- ÄΓ«íαáªÑ¡¿Ñ ßΓ᫬¿ ó «»αÑñѽѡ¡«¼ µóÑΓÑ ¡Ñ ∩ó½∩ÑΓß∩ ßΓ«½∞
- Γαπñ¡«⌐ ºáñáτÑ⌐, ¬á¬ óá¼ ¼«ªÑΓ ¬áºáΓ∞ß∩ ¡á »Ñαóδ⌐ óºú½∩ñ, Ñß½¿ óδ
- ¿ß»«½∞ºπÑΓÑ Σπ¡¬µ¿¿ ºá»¿ß¿ ß¿¼ó«½á, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ, ó ßó«ε
- «τÑαÑñ∞, 󫺼«ª¡«ßΓ¿ BIOS ¿ ó¿ñÑ«»á¼∩Γ¿ (ROM-BIOS). ROM-BIOS
- »αÑαδóá¡¿Ñ 10ì, Σπ¡¬µ¿∩ 9 »«ºó«½∩ÑΓ «Γ«íαếΓ∞ ΓѬπΘ¿⌐ ß¿¼ó«½
- («ñ¿¡!) ó »«º¿µ¿¿ ¬παß«αá ¿ Ñú« áΓα¿íπΓδ. Åα«í½Ñ¼á ß«ßΓ«¿Γ ½¿Φ∞ ó
- »ÑαѼÑΘÑ¡¿¿ ¬παß«αá »« ºá»¿ßδóáѼ«⌐ óἿ ßΓ᫬Ñ, ¡« φΓ« ñ«½ª¡á
- «ßπΘÑßΓó½∩Γ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡« óáΦá »«ñ»α«úαá¼¼á.
-
- é ß««ΓóÑΓßΓó¿¿ ß φΓ¿¼ 󫺡¿¬áÑΓ, ó«-»Ñαóδσ, ¡Ñ«íσ«ñ¿¼«ßΓ∞
- «»αÑñѽѡ¿∩ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá. ä½∩ φΓ«ú« ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ read_cursor_xy(), »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ. ¥Γá Σπ¡¬µ¿∩
- ¿ß»«½∞ºπÑΓ ROM-BIOS-»αÑαδóá¡¿Ñ 10ì, Σπ¡¬µ¿ε 3, ñ½∩ τΓÑ¡¿∩ ΓѬπΘ¿σ
- ¬««αñ¿¡áΓ »«º¿µ¿¿ ¬παß«αá X ¿ Y. è««αñ¿¡áΓδ »«º¿µ¿¿ ¬παß«αá
- ó«ºóαáΘáεΓß∩ ó ¬áτÑßΓóÑ º¡áτÑ¡¿⌐ áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿¿.
-
- /* ùΓÑ¡¿Ñ ΓѬπΘ¿σ ¬««αñ¿¡áΓ »«º¿µ¿¿ ¬παß«αá */
- void read_cursor_xy(x,y)
- char *x,*y;
- {
- union REGS r;
-
- r.h.ah = 3; /* τΓÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá */
- r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá */
- int86(0x10,&r,&r);
- *y = r.h.dl;
- *x = r.h.dh;
- }
-
- Å«ß½Ñ «»αÑñѽѡ¿∩ ¬««αñ¿¡áΓ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá,
- Σπ¡¬µ¿∩, ¬«Γ«αá∩ óδ»«½¡∩ÑΓ »ÑτáΓ∞ ßΓ᫬¿, ñ«½ª¡á «ßπΘÑßΓó¿Γ∞
- »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá ¬ ß½ÑñπεΘѼπ ß¿¼ó«½π, ß ΓѼ, τΓ«íδ ¿ß»«½∞ºπ∩
- ROM-BIOS-»αÑαδóá¡¿Ñ ¡á»ÑτáΓáΓ∞ Ñú«. ä½∩ »ÑαѼÑΘÑ¡¿∩ ¬παß«αá
- µÑ½Ñß««íαạ« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε goto_xy(), ¬«Γ«αá∩ íδ½á πªÑ
- αáßß¼«ΓαÑ¡á αá¡ÑÑ ¿ »α¿ó«ñ¿Γß∩ ó φΓ«⌐ ú½áóÑ ñ½∩ »«½¡«Γδ ¿º½«ªÑ¡¿∩
- ¼áΓÑα¿á½á.
-
- /* ÅÑαѼÑΘÑ¡¿Ñ ¬παß«αá ó »«º¿µ¿ε, ߻ѵ¿Σ¿µ¿α«óá¡¡πε
- ¬««αñ¿¡áΓἿ X ¿ Y
- */
- void goto_xy (x,y)
- int x,y;
- {
- union REGS r;
-
- r.h.ah = 2; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
- r.h.dl = x; /* ¬««αñ¿¡áΓá ßΓ«½íµá */
- r.h.dh = y; /* ¬««αñ¿¡áΓá ßΓ᫬¿ */
- r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá */
- int86(0x10,&r,&r);
- }
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 6 --
-
-
-
- öπ¡¬µ¿∩ color_puts(), »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ, «Γ«íαáªáÑΓ
- ߻ѵ¿Σ¿µ¿α«óá¡¡πε »«½∞º«óáΓѽѼ ßΓ᫬π ó π¬áºá¡¡«¼ µóÑΓÑ.
-
- /* ÅÑτáΓ∞ ßΓ᫬¿ ó µóÑΓÑ */
- void color_puts(s,color)
- char *s; /* ßΓ᫬á */
- char color; /* µóÑΓ ßΓ᫬¿ */
- {
- union REGS r;
- char x,y;
- read_cursor_xy(&x,&y); /* »«½πτÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá
- */
- while (*s) {
- if (*s == '\n') { /* «íαáí«Γ¬á ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿ */
- printf("\n");
- s++;
- x = 0; y++; /* »ÑαÑσ«ñ ¡á ß½ÑñπεΘπε ßΓ᫬π */
- continue;
- }
- r.h.ah = 9; /* Σπ¡¬µ¿∩ «Γ«íαáªÑ¡¿∩ ß¿¼ó«½á ¿ Ñú« áΓα¿íπΓ«ó */
- r.h.al = *s++; /* «Γ«íαáªáѼδ⌐ ß¿¼ó«½ */
- r.h.bl = color; /* áΓα¿íπΓδ µóÑΓá */
- r.h.bh = 0; /*ó¿ñÑ«ßΓαá¡¿µá 0 */
- r.x.cx = 1; /* «Γ«íαếΓ∞ ºá Ññ¿¡¿µπ óαѼѡ¿ ( Γá¬Γ ) */
- int86(0x10,&r,&r);
- x++;
- goto_xy(x,y); /* »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá */
- }
- }
-
- èᬠóδ ¼«ªÑΓÑ ó¿ñÑΓ∞, «Γ«íαáªáѼδ⌐ ß¿¼ó«½ ºá»«¼¿¡áÑΓß∩ ó
- αÑú¿ßΓαÑ AL, áΓα¿íπΓδ µóÑΓá ß¿¼ó«½á - ó αÑú¿ßΓαÑ BL, ¡«¼Ñα
- ó¿ñÑ«ßΓαá¡¿µδ - ó αÑú¿ßΓαÑ BH, á ¬«½¿τÑßΓó« ¿¡ΓÑαóὫó óαѼѡ¿
- (Γá¬Γ«ó »α«µÑßß«αá), ºá ¬«Γ«α«Ñ íπñÑΓ «Γ«íαáªÑ¡ ß¿¼ó«½ - ó
- αÑú¿ßΓαÑ CX. çá¼ÑΓ¿¼, τΓ« Σπ¡¬µ¿∩ Γá¬ªÑ «íαáíáΓδóáÑΓ ß»Ñµ¿á½∞¡δ⌐
- ß¿¼ó«½ ¡«ó«⌐ ßΓ᫬¿ ('\n'). éδ ¼«ªÑΓÑ ΓᬪÑ, »« ªÑ½á¡¿ε,
- «αúá¡¿º«óáΓ∞ «íαáí«Γ¬π ß¿¼ó«½«ó Γáíπ½∩µ¿¿ ('\t'), ñó«⌐¡δσ ¬áóδτѬ
- (") ¿ ñαπú¿σ ߻ѵ¿á½∞¡δσ ß¿¼ó«½«ó.
-
- êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿¿ color_puts() »αÑñ»«½áúáÑΓ ¡á½¿τ¿Ñ α∩ñá
- ¼á¬α««»αÑñѽѡ¿⌐ ó ¡áτá½Ñ óδºδóáεΘÑ⌐ Σπ¡¬µ¿ε »α«úαá¼¼δ. ÅÑαÑτÑ¡∞
- ¼á¬α««»αÑñѽѡ¿⌐ »αÑñßΓáó½Ñ¡ ¡¿ªÑ
-
- #define BLUE 1
- #define GREEN 2
- #define RED 4
- #define INTENSE 8
- #define BLUE_BACK 16
- #define GREEN_BACK 32
- #define RED_BACK 64
- #define BLINK 128
-
- êß»«½∞ºπ∩ φΓ¿ ¼á¬α«ßδ, óδ ¼«ªÑΓÑ »« ßó«Ñ¼π πß¼«ΓαÑ¡¿ε óδñáΓ∞
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 7 --
-
-
- ¡á φ¬αá¡ ßΓ᫬π ΓѬßΓá ¡á Σ«¡Ñ πßΓá¡«ó½Ñ¡¡«ú« óἿ µóÑΓá, á ΓᬪÑ
- ßá¼π ßΓ᫬π ó «»αÑñѽѡ¡«¼ óἿ µóÑΓÑ. éδ ¼«ªÑΓÑ Γá¬ªÑ π»αáó½∩Γ∞
- αѪ¿¼«¼ «Γ«íαáªÑ¡¿∩ ßΓ᫬¿ (»«óδΦÑ¡¡á∩ ∩ᬫßΓ∞ ¿½¿ ¼Ñαµá¡¿Ñ).
- è«¼í¿¡¿απ∩ µóÑΓá, αѪ¿¼δ ¼Ñαµá¡¿∩ ¿½¿ »«óδΦÑ¡¡«⌐ ∩ᬫßΓ¿ ñ½∩
- «ñ¡«ú« ¿½¿ ß«ó«¬π»¡«ßΓ¿ ß¿¼ó«½«ó, óδ ¼«ªÑΓÑ ñ«í¿Γ∞ß∩ ½εí«ú«
- ªÑ½áѼ«ú« óἿ φΣΣѬΓá. ìá»α¿¼Ñα, »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ ßΓ᫬á
- »α«úαá¼¼δ »α¿óÑñÑΓ ¬ «Γ«íαáªÑ¡¿ε ßΓ᫬¿ "Ç φΓ« - ΓѬßΓ" ó αѪ¿¼Ñ
- »«óδΦÑ¡¡«⌐ ∩ᬫßΓ¿ ó ú«½πí«¼ (µ¿á¡«ó«¼) µóÑΓÑ:
-
- color_puts("Ç φΓ« - ΓѬßΓ",GREEN | RED | INTENSE );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 8 --
-
-
- êß»«½∞º«óá¡¿Ñ µóÑΓá.
- --------------------
-
- ä«ó«½∞¡« φΣΣÑ¬Γ¿ó¡« ¿ß»«½∞º«óá¡¿Ñ ¼¡«ú«µóÑΓ¡«ú« ΓѬßΓá ó
- αẽ¿τ¡δσ »α¿½«ªÑ¡¿∩σ. é« óß∩¬«¼ ß½πτáÑ ¼¡«ú«µóÑΓ¡δ⌐ ΓѬßΓ
- ß¼«Γα¿Γß∩ óßÑúñá ¡á¼¡«ú« φßΓÑΓ¿τ¡Ñ⌐, τѼ ¼«¡«σα«¼¡δ⌐. Äñ¡á¬« »α¿
- ¿ß»«½∞º«óá¡¿¿ ¼¡«ú«µóÑΓ¡«ú« ΓѬßΓá ¡Ñ«íσ«ñ¿¼« »α¿ñÑনóáΓ∞ß∩
- ß½ÑñπεΘ¿σ «ß¡«ó¡δσ »«½«ªÑ¡¿⌐:
-
- - êºíÑúá⌐ΓÑ ¿ß»«½∞º«óá¡¿∩ "¡ÑßΓá¡ñáαΓ¡δσ" µóÑΓ«ó. ìá¿í«½ÑÑ
- «íΘ¿¼ ½πτΦ¿¼ óáα¿á¡Γ«¼ ∩ó½∩ÑΓß∩ «Γ«íαáªÑ¡¿Ñ íѽδσ ß ¿¼ó«½«ó ¡á
- τÑα¡«¼ Σ«¡Ñ. ÅαÑñ»«τΓ¿Γѽ∞¡ÑÑ ó¼ÑßΓ« «Γ«íαáªÑ¡¿∩ ¬á¬«⌐-Γ« ó᪡«⌐
- ¿¡Σ«α¼áµ¿¿ ó ¬«¡ΓαáßΓ¡«¼ µóÑΓÑ «Γ«íαáªáΓ∞ ÑÑ ó αѪ¿¼Ñ »«óδΦÑ¡¡«⌐
- ∩ᬫßΓ¿.
-
- - ìá¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ¼ »α¿º¡á¡« ¿ß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ αἫ¬
- φ¬αá¡á ¿ «¬«¡.
-
- - é α∩ñÑ ß¿Γπᵿ⌐ »«½Ñº¡δ¼ «¬áºδóáÑΓß∩ «Γ«íαáªÑ¡¿Ñ
- «Γα¿µáΓѽ∞¡«ú« «ßΓáΓ¬á (¡á»α¿¼Ñα, ñѡѪ¡«⌐ ßπ¼¼δ) ó ¬αáß¡«¼
- µóÑΓÑ.
-
- - ÄΓ«íαáªÑ¡¿Ñ ΓѬπΘÑ⌐ ßΓ᫬¿ (¿½¿ τáßΓ¿ ΓѬπΘÑ⌐ ßΓ᫬¿) ó
- ¬«¡ΓαáßΓ¡«¼ µóÑΓÑ ∩ó½∩ÑΓß∩, »«ªá½π⌐, ½πτΦ¿¼ »α¿Ñ¼«¼ ¿¡ñ¿¬áµ¿¿
- »«½«ªÑ¡¿∩ ñÑ⌐ßΓó¿⌐ »«½∞º«óáΓѽ∩ ¡á φ¬αá¡Ñ ó ΓѬπΘ¿⌐ ¼«¼Ñ¡Γ
- óαѼѡ¿.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 9 --
-
-
- êçîàìàìêà ÉÇçîàÉÇ èôÉæÄÉÇ
- -----------------------------------------------------------------
-
- ü«½∞Φ¿¡ßΓó« »«½∞º«óáΓѽÑ⌐ ñáªÑ ¡Ñ »αÑñßΓáó½∩εΓ ¡á߬«½∞¬«
- óѽ¿¬¿ 󫺼«ª¡«ßΓ¿ ßѼÑ⌐ßΓóá ¼áΦ¿¡ IBM PC. é τáßΓ¡«ßΓ¿, «¡¿
- »«ºó«½∩εΓ ¿º¼Ñ¡∩Γ∞ αẼÑα ¬παß«αá. Å« π¼«½τá¡¿ε ¬παß«α
- «Γ«íαáªáÑΓß∩ ó ó¿ñÑ «ñ¡«⌐ ¼ÑαµáεΘÑ⌐ ßΓα«τ¬¿ (αáºóÑαΓ¬¿ ñ¿ß»½Ñ∩).
- Äñ¡á¬« »«½∞º«óáΓѽ∞ ¼«ªÑΓ óáα∞¿α«óáΓ∞ αẼÑα«¼ ¬παß«αá «Γ «ñ¡«⌐
- ßΓ᫬¿ αáºóÑαΓ¬¿ ñ¿ß»½Ñ∩ ñ« »«½¡«ú« αẼÑαá (óδß«Γδ) ß¿¼ó«½á. é
- µóÑΓ¡«¼ ΓѬßΓ«ó«¼ αѪ¿¼Ñ ¬παß«α ¼«ªÑΓ ¿¼ÑΓ∞ óδß«Γπ «Γ 0 ñ« 8
- ßΓ᫬ αáºóÑαΓ¬¿. (é ¼«¡«σα«¼¡«¼ αѪ¿¼Ñ ¬παß«α ¼«ªÑΓ ¿¼ÑΓ∞ óδß«Γπ
- «Γ 0 ñ« 14 ßΓ᫬ αáºóÑαΓ¬¿, «ñ¡á¬« ó ñá¡¡«¼ »áαáúαáΣÑ ¼δ íπñѼ
- αáßß¼áΓα¿óáΓ∞ Γ«½∞¬« µóÑΓ¡«⌐ αѪ¿¼). 쿪¡∩∩ ßΓ᫬á αáºóÑαΓ¬¿
-
- ¿¼ÑÑΓ ¡«¼Ñα 0. ïπτΦÑ óßÑú« αáßß¼áΓα¿óáΓ∞ ¿º¼Ñ¡Ñ¡¿Ñ ¬παß«αá ¿¼Ñ¡¡«
- «Γ¡«ß¿Γѽ∞¡« ßΓ᫬¿ αáºóÑαΓ¬¿ 0, Γᬠ¬á¬ »α¿¼Ñ¡Ñ¡¿Ñ ñαπú«ú«
- ¼ÑΓ«ñá ¼«ªÑΓ »α¿óÑßΓ¿ ¬ º¡áτ¿Γѽ∞¡δ¼ αáßσ«ªñÑ¡¿∩¼ αѺπ½∞ΓáΓ«ó ¡á
- αẽ¿τ¡δσ ¬«¼»∞εΓÑαáσ. (é »α¿¡µ¿»Ñ »α¿¼Ñ¡Ñ¡¿Ñ ñαπú¿σ ¼ÑΓ«ñ«ó
- 󫺼«ª¡«, «ñ¡á¬« óá¼ ¡Ñ«íσ«ñ¿¼« »«¼¡¿Γ∞, τΓ« »α¿ ¿σ ¿ß»«½∞º«óá¡¿¿
- óδ ¼«ªÑΓÑ ¡Ñ ñ«í¿Γ∞ß∩ ß««ΓóÑΓßΓó¿∩ Σ«α¼ ¬παß«αá »α¿ αÑΦÑ¡¿¿ «ñ¡«⌐
- ¿ Γ«⌐ ªÑ ºáñáτ¿ ¡á αạδσ ¬«¼»∞εΓÑαáσ). Åα¿ πß½«ó¿¿, τΓ« óδ
- íπñÑΓÑ αáßß¼áΓα¿óáΓ∞ ¿º¼Ñ¡Ñ¡¿Ñ Σ«α¼δ ¬παß«αá «Γ¡«ß¿Γѽ∞¡« ¡π½Ñó«⌐
- ßΓ᫬¿ αáºóÑαΓ¬¿, ¿º¼Ñ¡Ñ¡¿Ñ Σ«α¼δ ¬παß«αá íπñÑΓ óδ»«½¡∩Γ∞ß∩
- á¡á½«ú¿τ¡« ¿º«íαáªÑ¡¡«¼π ¡á α¿ß.8-1.
-
- ä½∩ πßΓá¡«ó½Ñ¡¿∩ αẼÑαá ¬παß«αá óá¼ ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞
- ROM-BIOS-»αÑαδóá¡¿Ñ 10ì, Σπ¡¬µ¿ε 1, ¬«Γ«αá∩ πßΓá¡áó½¿óáÑΓ αẼÑα
- ¬παß«αá. ìáτὫ ¬παß«αá (¡áτá½∞¡á∩ ßΓ᫬á αáºóÑαΓ¬¿) -
- ºá»«¼¿¡áÑΓß∩ ó αÑú¿ßΓαÑ Cì, á ¬«¡Ñµ (¬«¡Ñτ¡á∩ ßΓ᫬á αáºóÑαΓ¬¿) ó
- αÑú¿ßΓαÑ CL.
-
-
- ┌───────────────────────────────────────────────────────────────┐
- │ æΓ᫬á αáºóÑαΓ¬¿ │
- │ │
- │ 7 ┌───┐ │
- │ │ │ │
- │ 6 ┌───┐ │ │ │
- │ │ │ │ │ │
- │ 5 ┌───┐ │ │ │ │ │
- │ │ │ │ │ │ │ │
- │ 4 ┌───┐ │ │ │ │ │ │ │
- │ │ │ │ │ │ │ │ │ │
- │ 3 ┌───┐ │ │ │ │ │ │ │ │ │
- │ │ │ │ │ │ │ │ │ │ │ │
- │ 2 ┌───┐ │ │ │ │ │ │ │ │ │ │ │
- │ │ │ │ │ │ │ │ │ │ │ │ │ │
- │ 1 ┌───┐ │ │ │ │ │ │ │ │ │ │ │ │ │
- │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- │ 0 │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
- │ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ │
- └───────────────────────────────────────────────────────────────┘
- É¿ß. 8-1. 髺¼«ª¡«ßΓ∞ ¿º¼Ñ¡Ñ¡¿∩ Σ«α¼δ ¬παß«αá ó
- µóÑΓ¡«¼ αѪ¿¼Ñ.
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 10 --
-
- öπ¡¬µ¿∩ size_cursor(), »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ, πßΓá¡áó½¿óáÑΓ
- αẼÑα ¬παß«αá.
-
- /* ôßΓá¡«ó½Ñ¡¿Ñ αẼÑαá ¬παß«αá */
- void size_cursor(start,end)
- char start,end; /* ¡áτá½∞¡á∩ ¿ ¬«¡Ñτ¡á∩ ßΓ᫬¿ αáºóÑαΓ¬¿ */
- {
- union REGS r;
-
- r.h.ah = 1; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
- r.h.ch = start;
- r.h.cl = end;
- int86(0x10,&r,&r);
- }
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ Σπ¡¬µ¿¿ size_cursor() π¬áª¿ΓÑ ªÑ½áѼδÑ
- ¡áτá½∞¡πε ¿ ¬«¡Ñτ¡πε ßΓ᫬¿ αáºóÑαΓ¬¿, «»αÑñѽ∩εΘ¿Ñ αẼÑα
- ¬παß«αá. ìá»α¿¼Ñα, ß½ÑñπεΘá∩ ¬«¡ßΓαπ¬µ¿∩ »«ºó«½∩ÑΓ πßΓá¡«ó¿Γ∞
- óδß«Γπ ¬παß«αá ó Γα¿ ßΓ᫬¿ αáºóÑαΓ¬¿:
-
- size_cursor(0,2);
-
- ö«α¼á ¬παß«αá ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á ½¿í« «τÑαÑñ¡δ¼ ó맮ó«¼
- Σπ¡¬µ¿¿ size_cursor(), ½¿í« ¿º¼Ñ¡Ñ¡¿Ñ¼ ó¿ñÑ«αѪ¿¼á.
-
- êß»«½∞º«óá¡¿Ñ ¬παß«α«ó αẽ¿τ¡«⌐ Σ«α¼δ »«ºó«½∩ÑΓ ¡Ñ Γ«½∞¬«
- »«½¡«ßΓ∞ε πñ«ó½ÑΓó«α¿Γ∞ óáΦ¿ φßΓÑΓ¿τÑ߬¿Ñ ΓαÑí«óá¡¿∩, ¡« ¿
- »«óδß¿Γ ¡áú½∩ñ¡«ßΓ∞ »α«úαá¼¼δ. ê¼Ñ⌐ΓÑ ó ó¿ñπ, τΓ« í«½∞Φ«⌐
- ¼ÑαµáεΘ¿⌐ ¬παß«α óδºδóáÑΓ π »«½∞º«óáΓѽÑ⌐ αáºñαáªÑ¡¿Ñ.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 11 --
-
-
- æèÉÄïïêìâ ùÇæÆê ¥èÉÇìÇ
- -----------------------------------------------------------------
-
- äóÑ ß«ó¼ÑßΓ¡« ¿ß»«½∞ºπѼδÑ Σπ¡¬µ¿¿ ROM-BIOS-»αÑαδóá¡¿∩
- »«ºó«½∩εΓ «ßπΘÑßΓó½∩Γ∞ ß¬α«½½¿¡ú ó»ÑαÑñ ¿ ¡áºáñ τáßΓ¿ φ¬αá¡á. ¥Γ¿
- Σπ¡¬µ¿¿ í뫨 ó¬½ετÑ¡δ ó ROM-BIOS ñ½∩ »«ññÑ᪬¿ ¼¡«ú««¬«¡¡δσ
- ¿¡ΓÑαΣÑ⌐ß«ó. èᬠóδ º¡áÑΓÑ, ¬«úñá ¬παß«α αáß»«½«ªÑ¡ ó ñóáñµáΓ∞
- »∩Γ«⌐ ßΓα«¬Ñ ¿ óδ ¡áªá½¿ ¬½áó¿Φπ <ééÄä>, Γ« áóΓ«¼áΓ¿τÑ߬¿
- «ßπΘÑßΓó½∩ÑΓß∩ »ÑαѼÑΘÑ¡¿Ñ ΓѬßΓá ¡á «ñ¡π ßΓ᫬π óóÑασ ß µÑ½∞ε
- «Γ«íαáªÑ¡¿∩ ¡«ó«⌐ ßΓ᫬¿ ó ¡¿ª¡Ñ⌐ τáßΓ¿ φ¬αá¡á. Æ«τ¡« ΓᬠªÑ, ß
- »«¼«Θ∞ε Σπ¡¬µ¿⌐ 6 ¿ 7 »αÑαδóá¡¿∩ ROM-BIOS 10ì, ¼«ª¡« «ßπΘÑßΓó¿Γ∞
- ß¬α«½½¿¡ú ½¿Φ∞ τáßΓ¿ φ¬αá¡á. öπ¡¬µ¿∩ 6 »«ºó«½∩ÑΓ óδ»«½¡¿Γ∞
- ß¬α«½½¿¡ú ó «¬¡Ñ 󡿺 (ó»ÑαÑñ), á Σπ¡¬µ¿∩ 7 - óóÑασ (¡áºáñ).
-
- ÄíÑ Σπ¡¬µ¿¿ »α¿ ó맮óÑ ¿ß»«½∞ºπεΓ ¿¡Σ«α¼áµ¿ε, σαá¡¿¼πε ó
- «»αÑñѽѡ¡δσ αÑú¿ßΓαáσ. çá¡Ñß¿ΓÑ ¬«½¿τÑßΓó« ßΓ᫬, ¡á ¬«Γ«αδÑ
- íπñÑΓ "»α«¬απτ¿óáΓ∞ß∩" ΓѬßΓ (¼«Θ¡«ßΓ∞ ß¬α«½½¿¡úá) ó αÑú¿ßΓα AL.
- 쫼Ñα óÑασ¡Ñ⌐ ½Ñó«⌐ ßΓ᫬¿, «úαá¡¿τ¿óáεΘÑ⌐ óáΦÑ "«¬¡«", ºá¡Ñß¿ΓÑ
- ó αÑú¿ßΓα CH, á ¡«¼Ñα óÑασ¡Ñú« ½Ñó«ú« ßΓ«½íµá - ó αÑú¿ßΓα CL.
- 쫼Ñα ¡¿ª¡Ñ⌐ ½Ñó«⌐ ßΓ᫬¿ ºá¡Ñß¿ΓÑ ó αÑú¿ßΓα DH, á ¡«¼Ñα ¡¿ª¡Ñú«
- »αáó«ú« ßΓ«½íµá - ó αÑú¿ßΓα DL. é ¬«¡µÑ ºá»«¼¡¿ΓÑ ó αÑú¿ßΓαÑ BH
- áΓα¿íπΓδ αѪ¿¼á «Γ«íαáªÑ¡¿∩, ¬«Γ«αδÑ íπñπΓ «»αÑñѽ∩Γ∞, ¬á¬ ¿¼Ñ¡¡«
- íπñπΓ «Γ«íαáªáΓ∞ß∩ ó »α«µÑßßÑ ß¬α«½½¿¡úá ¡«óδÑ ßΓ᫬¿. öπ¡¬µ¿∩
- scroll_window() »αÑñßΓáó½Ñ¡á ¡¿ªÑ.
-
- /* æ¬α«½½¿¡ú ó «¬¡Ñ ó»ÑαÑñ ¿ ¡áºáñ */
-
- void scroll_window(startx,starty,endx,endy,lines,direct)
- char startx,starty;/* óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ */
- char endx,endy; /* ¡¿ª¡¿⌐ »αáóδ⌐ πú«½ */
- char lines; /* τ¿ß½« ßΓ᫬ »α«¬απΓ¬¿ */
- char direct; /* ó»ÑαÑñ ¿½¿ ¡áºáñ */
- {
- union REGS r;
-
- if ( direct == UP ) r.h.ah = 6; /* ß¬α«½½¿¡ú ó»ÑαÑñ */
- else r.h.ah = 7; /* ß¬α«½½¿¡ú 󡿺 (¡áºáñ) */
- r.h.al = lines;
- r.h.ch = starty;
- r.h.cl = startx;
- r.h.dh = endy;
- r.h.dl = endx;
- r.h.bh = 0; /* αѪ¿¼ «Γ«íαáªÑ¡¿∩ */
- int86(0x10,&r,&r);
- }
-
- éδ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ ¼á¬α«ß UP ¬á¬ ¿¼ÑεΘ¿⌐ ¡Ñ¬«Γ«α«Ñ
- º¡áτÑ¡¿Ñ. éδ Γá¬ªÑ ¼«ªÑΓÑ «»αÑñѽ¿Γ∞ ¼á¬α«ß DOWN, º¡áτÑ¡¿Ñ
- ¬«Γ«α«ú« íπñÑΓ «Γ½¿τ¡« «Γ UP, á ºáΓѼ ¿ß»«½∞º«óáΓ∞ »α¿
- ¡Ñ«íσ«ñ¿¼«ßΓ¿ «ßπΘÑßΓó½Ñ¡¿∩ ß¬α«½½¿¡úá ó «¬¡Ñ φΓ¿
- ¼á¬α««»αÑñѽѡ¿∩. Æá¬«⌐ »α¿Ñ¼ º¡áτ¿Γѽ∞¡« π»α«ßΓ¿Γ óáΦπ
- »α«úαá¼¼π. öπ¡¬µ¿∩ scroll_window() »α¿ßóá¿óáÑΓ αÑú¿ßΓαπ éì
- º¡áτÑ¡¿Ñ 0 ñ½∩ ß«σαá¡Ñ¡¿∩ »πßΓδσ ßΓ᫬, «ñ¡á¬« óδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞
- φΓ« º¡áτÑ¡¿Ñ »« ßó«Ñ¼π πß¼«ΓαÑ¡¿ε.
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 12 --
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 13 --
-
-
- ÅÉÄæÆàëÿǃ äàîÄìæÆÉÇûêÄììǃ ÅÉÄâÉÇîîÇ
- -----------------------------------------------------------------
-
- ¥Γá »α«úαá¼¼á »«ºó«½∩ÑΓ »α«ñѼ«¡ßΓα¿α«óáΓ∞ αáí«Γπ Σπ¡¬µ¿⌐,
- αáßß¼«ΓαÑ¡¡δσ ó ñá¡¡«⌐ ú½áóÑ ñ« ¡áßΓ«∩ΘÑú« ¼«¼Ñ¡Γá. ¥Γ¿ Σπ¡¬µ¿¿
- »«ºó«½∩εΓ ¿º¼Ñ¡¿Γ∞ Σ«α¼π ¬παß«αá, óδñáΓ∞ ß««íΘÑ¡¿Ñ ó µóÑΓÑ, á
- Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ ß¬α«½½¿¡ú τáßΓ¿ φ¬αá¡á. ÉѺπ½∞ΓáΓ αáí«Γδ φΓ«⌐
- »α«úαá¼¼δ »αÑñßΓáó½Ñ¡ ¡á α¿ß.8-2.
-
-
- ┌───────────────────────────────────────────────────────────────┐
- │ │
- │ a) ¥Γ« - ΓÑßΓ │
- │ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │
- │ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │
- │ cccccccccccccccccccccccccccccccccccccccccccccccccccccc │
- │ dddddddddddddddddddddddddddddddddddddddddddddddddddddd │
- │ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee │
- │ ffffffffffffffffffffffffffffffffffffffffffffffffffffff │
- │ gggggggggggggggggggggggggggggggggggggggggggggggggggggg │
- │ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh │
- │ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii │
- │ jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj │
- │ kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk │
- │ llllllllllllllllllllllllllllllllllllllllllllllllllllll │
- │ mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm │
- │ nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn │
- │ oooooooooooooooooooooooooooooooooooooooooooooooooooooo │
- │ pppppppppppppppppppppppppppppppppppppppppppppppppppppp │
- │ qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq │
- │ rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr │
- │ ssssssssssssssssssssssssssssssssssssssssssssssssssssss │
- │ tttttttttttttttttttttttttttttttttttttttttttttttttttttt │
- │ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu │
- │ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv │
- │ │
- │ í) ¥Γ« - ΓÑßΓ. │
- │ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa │
- │ bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb │
- │ cccccccccccccccccccccccccccccccccccccccccccccccccccccc │
- │ dddddddddddddddddddddddddddddddddddddddddddddddddddddd │
- │ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee │
- │ ffffffffffffffffffffffffffffffffffffffffffffffffffffff │
- │ gggggggggggggggggggggggggggggggggggggggggggggggggggggg │
- │ hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh │
- │ iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii │
- │ jjjjjjjjjj jjjjjjjjjjjjjjjjjjjjjjj │
- │ kkkkkkkkkk kkkkkkkkkkkkkkkkkkkkkkk │
- │ llllllllll lllllllllllllllllllllll │
- │ mmmmmmmmmmjjjjjjjjjjjjjjjjjjjjjmmmmmmmmmmmmmmmmmmmmmmm │
- │ nnnnnnnnnnkkkkkkkkkkkkkkkkkkkkknnnnnnnnnnnnnnnnnnnnnnn │
- │ oooooooooolllllllllllllllllllllooooooooooooooooooooooo │
- │ pppppppppppppppppppppppppppppppppppppppppppppppppppppp │
- │ qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq │
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 14 --
-
-
- │ rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr │
- │ ssssssssssssssssssssssssssssssssssssssssssssssssssssss │
- │ tttttttttttttttttttttttttttttttttttttttttttttttttttttt │
- │ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu │
- │ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv │
- │ │
- └───────────────────────────────────────────────────────────────┘
-
- É¿ß. 8-2 ÉѺπ½∞ΓáΓ αáí«Γδ »α«úαá¼¼δ.
-
-
- /* äѼ«¡ßΓαᵿ«¡¡á∩ »α«úαá¼¼á »ÑτáΓ¿ ΓѬßΓá ó µóÑΓÑ,
- ¿º¼Ñ¡Ñ¡¿∩ Σ«α¼δ ¬παß«αá ¿ ß¬α«½½¿¡úá ó «¬¡Ñ
- */
-
- #include "dos.h"
-
- #define BLUE 1
- #define GREEN 2
- #define RED 4
- #define INTENSE 8
- #define BLUE_BACK 16
- #define GREEN_BACK 32
- #define RED_BACK 64
- #define BLINK 128
-
- #define UP 0
- #define DOWN 1
-
- void mode(),color_puts(),palette(), read_cursor_xy();
- void goto_xy(),size_cursor(),scroll_window();
-
- main()
- {
- int i,j;
-
- mode(3); /* αѪ¿¼ ΓѬßΓ«óδ⌐, µóÑΓ¡«⌐ */
-
- size_cursor(0,3);
- goto_xy(0,0);
- color_puts(" ¥Γ« - ΓÑßΓ\n",BLUE |RED | INTENSE);
- for ( i=0;i<22;i++) {
- for ( j=0;j<79;j++)
- printf("%c",i+'a');
- printf("\n");
- }
- getche();
- scroll_window(10,10,50,15,3,DOWN);
- getche();
- }
- /* ÅÑτáΓ∞ ßΓ᫬¿ ó µóÑΓÑ */
-
- void color_puts(s,color)
- char *s; /* ßΓ᫬á */
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 15 --
-
-
- char color; /* µóÑΓ ßΓ᫬¿ */
- {
- union REGS r;
- char x,y;
-
- read_cursor_xy(&x,&y); /* τΓÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿
- ¬παß«αá */
- while (*s) {
- if (*s == '\n') { /* «íαáí«Γ¬á ß¿¼ó«½á ¡«ó«⌐
- ßΓ᫬¿ */
- printf("\n");
- s++;
- x = 0; y++; /* »ÑαÑσ«ñ ¬ ¡«ó«⌐ ßΓα«¬Ñ */
- continue;
- }
-
- r.h.ah = 9;/* «Γ«íαáªÑ¡¿Ñ ß¿¼ó«½«ó »« áΓα¿íπΓá¼ */
- r.h.al = *s++; /* óδñáóáѼδ⌐ ß¿¼ó«½ */
- r.h.bl = color; /* áΓα¿íπΓ µóÑΓá */
- r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá 0 */
- r.x.cx = 1; /* óδñáτá ß¿¼ó«½á ºá «ñ¿¡ Γá¬Γ */
- int86(0x10,&r,&r);
- x++;
- goto_xy(x,y); /* »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá */
- }
- }
- /* τΓÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá */
- void read_cursor_xy(x,y)
- char *x,*y;
- {
- union REGS r;
-
- r.h.ah = 3; /* τΓÑ¡¿Ñ »«º¿µ¿¿ ¬παß«αá */
- r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá 0 */
- int86(0x10,&r,&r);
- *y = r.h.dl;
- *x = r.h.dh;
- }
-
- /* πßΓá¡«ó¬á »á½¿Γαδ */
- void palette(pnum)
- int pnum;
- {
- union REGS r;
-
- r.h.bh = 1; /* ¬«ñ ñ½∩ úαáΣ¿τÑ߬«ú« αѪ¿¼á 4 */
- r.h.bl = pnum;
- r.h.ah = 11; /* Σπ¡¬µ¿∩ πßΓá¡«ó¬¿ »á½¿Γαδ */
- int86(0x10,&r,&r);
- }
-
- /* πßΓá¡«ó¬á ó¿ñÑ«αѪ¿¼á */
- void mode(mode_code)
- int mode_code;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 16 --
-
-
- {
- union REGS r;
-
- r.h.al = mode_code;
- r.h.ah = 0;
- int86(0x10,&r,&r);
- }
-
- /* »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá ó »«º¿µ¿ε x,y */
- void goto_xy(x,y)
- int x,y;
- {
- union REGS r;
-
- r.h.ah = 2; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
- r.h.dl = x; /* ¬««αñ¿¡áΓδ ßΓ«½íµá */
- r.h.dh = y; /* ¬««αñ¿¡áΓδ ßΓ᫬¿ */
- r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá 0 */
- int86(0x10,&r,&r);
- }
-
- /* πßΓá¡«ó¬á αẼÑαá (Σ«α¼δ) ¬παß«αá */
- void size_cursor(start,end)
- char start,end; /* ¡áτá½∞¡á∩ ¿ ¬«¡Ñτ¡á∩ ßΓ᫬¿
- αáºóÑαΓ¬¿ */
- {
- union REGS r;
-
- r.h.ah = 1; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
- r.h.ch = start;
- r.h.cl = end;
- int86(0x10,&r,&r);
- }
-
- /* ß¬α«½½¿¡ú ó «¬¡Ñ ó»ÑαÑñ ¿ ¡áºáñ */
- void scroll_window(startx,starty,endx,endy,lines,direct)
- char startx,starty; /* óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ */
- char endx,endy; /* ¡¿ª¡¿⌐ »αáóδ⌐ πú«½ */
- char lines; /* ¼«Θ¡«ßΓ∞ ß¬α«½½¿¡úá */
- char direct; /* óóÑασ ¿½¿ 󡿺 */
- {
- union REGS r;
-
- if ( direct == UP ) r.h.ah = 6; /* ß¬α«½½¿¡ú óóÑασ */
- else r.h.ah = 7; /* ß¬α«½½¿¡ú 󡿺 */
-
- r.h.al = lines;
- r.h.ch = starty;
- r.h.cl = startx;
- r.h.dh = endy;
- r.h.dl = endx;
- r.h.bh = 0; /* αѪ¿¼ «Γ«íαáªÑ¡¿∩ */
- int86(0x10,&r,&r);
- }
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 17 --
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 18 --
-
-
- æÄòÉÇìàìêà èÄÅêê ¥èÉÇìÇ é äêæèÄéÄî öÇëïà
- -----------------------------------------------------------------
-
- ì¿ ó DOS, ¡¿ ó OS/2 ¡ÑΓ πΓ¿½¿Γ, ßσ«ñ¡δσ ß πΓ¿½¿Γ«⌐ »ÑτáΓ¿
- ¬«»¿¿ φ¬αá¡á, »«ºó«½∩εΘÑ⌐ ß«σαá¡∩Γ∞ ΓѬπΘÑÑ ß«ñÑন¼«Ñ φ¬αá¡á
- ñ¿ß»½Ñ∩ ó ñ¿ß¬«ó«¼ Σá⌐½Ñ. é φΓ«¼ αáºñÑ½Ñ óδ ¡á⌐ñÑΓÑ »«∩ߡѡ¿Ñ,
- ¬á¬ ¼«ª¡« ß«ºñáΓ∞ »α«úαá¼¼π, ¬«Γ«αá∩ óδ»«½¡∩½á íδ ¿¼Ñ¡¡« φΓπ
- Σπ¡¬µ¿ε.
-
- ¥Γá »α«úαá¼¼á ¿ß»«½∞ºπÑΓ ROM-BIOS-»αÑαδóá¡¿Ñ 10ì, Σπ¡¬µ¿ε 8
- ñ½∩ τΓÑ¡¿∩ ß¿¼ó«½á ¿º ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá, »«ß½Ñ τÑú« φΓ«Γ
- ß¿¼ó«½ ºá»¿ßδóáÑΓß∩ ó Σá⌐½ ¡á ñ¿ß¬Ñ. èᬠ¿ ó »αÑñδñπΘѼ αáºñѽÑ,
- óδ «»∩Γ∞ óßΓαÑΓ¿ΓÑß∞ ß Σπ¡¬µ¿Ñ⌐ goto_xy(), ¬«Γ«αá∩ ó φΓ«¼ ß½πτáÑ
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ »ÑαѼÑΘÑ¡¿∩ ¬παß«αá »«ß½Ññ«óáΓѽ∞¡« »« óßѼ
- ßΓα«¬á¼ φ¬αá¡á, ¡áτ¿¡á∩ ß ½Ñó«ú« óÑασ¡Ñú« πú½á φ¬αá¡á ñ« »αáó«ú«
- ¡¿ª¡Ñú« πú½á.
-
- ê¼∩ Σá⌐½á, ó ¬«Γ«α«¼ íπñÑΓ σαá¡¿Γ∞ß∩ ¬«»¿∩ φ¬αá¡á,
- π¬áºδóáÑΓ∩ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá »α«úαá¼¼δ. àß½¿, ¬ »α¿¼Ñαπ, óδ
- ¡áº«óÑΓÑ ßó«ε »α«úαá¼¼π, ¬«»¿απεΘπε φ¬αá¡ ¡á ñ¿ß¬, screen, Γ«
- »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ ¬«¼á¡ñ¡á∩ ßΓα«¬á »α¿óÑñÑΓ ¬ ß«ºñá¡¿ε ¬«»¿¿
- φ¬αá¡á ó Σá⌐½Ñ ß ¿¼Ñ¡Ñ¼ scr.sav:
-
- C> screen scr.sav
-
- Ç ó«Γ ¿ßσ«ñ¡δ⌐ ΓѬßΓ ßἫ⌐ »α«úαá¼¼δ ¬«»¿α«óá¡¿∩:
-
- /* ¥Γá »α«úαá¼¼á ¬«»¿απÑΓ ß«ñÑন¼«Ñ φ¬αá¡á óáΦÑú«
- ñ¿ß»½Ñ∩ ó Σá⌐½, ¿¼∩ ¬«Γ«α«ú« π¬áºá¡« ó ¬«¼á¡ñ¡«⌐
- ßΓ᫬Ñ
- */
-
- #include "dos.h"
- #include "stdio.h"
-
- void save_screen(),goto_xy();
-
- main(argc,argv)
- int argc;
- char *argv[];
- {
- if ( argc != 2 ) {
- printf(" ¿ß»«½∞ºπ⌐ΓÑ Σ«α¼áΓ : screen <¿¼∩ Σá⌐½á>");
- exit(1);
- }
- save_screen(argv[1]);
- }
-
- /* ß«σαá¡Ñ¡¿Ñ ß«ñÑন¼«ú« φ¬αá¡á ó ñ¿ß¬«ó«¼ Σá⌐½Ñ */
- void save_screen(fname)
- char *fname;
- {
- FILE *fp;
- union REGS r;
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 19 --
-
-
- register char x,y;
-
- if ( !( fp=fopen(fname,"w"))) {
- printf(" öá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬αδΓ ");
- exit(1);
- }
-
- for (y=0;y<25;y++)
- for (x=0;x<80;x++) {
- goto_xy(x,y);
- r.h.ah = 8; /* τΓÑ¡¿Ñ ß¿¼ó«½á */
- r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá */
- int86(0x10,&r,&r);
- putc(r.h.al,fp); /* óδñáτá (»ÑτáΓ∞) ß¿¼ó«½á */
- }
- fclose(fp);
- }
-
- /* ÅÑαѼÑΘÑ¡¿Ñ ¬παß«αá ó »«º¿µ¿ε (x,y) */
- void goto_xy(x,y)
- int x,y;
- {
- union REGS r;
-
- r.h.ah = 2; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
- r.h.dl = x; /* ¬««αñ¿¡áΓá ßΓ«½íµá */
- r.h.dh = y; /* ¬««αñ¿¡áΓá ßΓ᫬¿ */
- r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá */
- int86(0x10,&r,&r);
- }
-
- 櫺ñáóáѼδ⌐ Σá⌐½ »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßΓá¡ñáαΓ¡δ⌐ ASCII Σá⌐½,
- ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ «ΓαÑñá¬Γ¿α«óá¡ ¿ αáß»ÑτáΓá¡ ¬á¬ «íδτ¡δ⌐
- ΓѬßΓ«óδ⌐ Σá⌐½. Åα«úαá¼¼á »«ºó«½∩ÑΓ ºá»¿ßδóáΓ∞ ½¿Φ∞ ß¿¼ó«½δ,
- «Γ«íαáªÑ¡¡δÑ ¡á φ¬αá¡Ñ, ¡« ¡Ñ »«ºó«½∩ÑΓ ß«σαá¡¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ
- áΓα¿íπΓδ «Γ«íαáªÑ¡¿∩ ß¿¼ó«½«ó. Äñ¡á¬« ñ«»«½¡¿Γ∞ »α«úαá¼¼π ñ½∩
- Γ«ú«, τΓ«íδ «¡á ºá»¿ßδóá½á ¿ áΓα¿íπΓδ ß¿¼ó«½«ó ¡Ñß½«ª¡«, ¿ óδ »α¿
- ªÑ½á¡¿¿ ¼«ªÑΓÑ φΓ« ßñѽáΓ∞ ßἫßΓ«∩Γѽ∞¡«.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 20 --
-
-
- Ç ÆàÅàÉ£ äÄüÇéêî çéôè.
- -----------------------------------------------------------------
-
- êß»«½∞º«óá¡¿Ñ ß« ó¬πß«¼ ºóπ¬á º¡áτ¿Γѽ∞¡« »«óδΦáÑΓ
- »α¿ó½Ñ¬áΓѽ∞¡«ßΓ∞ »α«úαá¼¼. çóπ¬ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ó Φ¿α«¬«¼
- ߻ѬΓαÑ «Γ Γ«¡Ñ¡∞¬«ú« "»¿ß¬á" ¼áΦ¿¡δ ñ« ¿ß»«½¡Ñ¡¿∩ ¼πºδ¬¿ ¿½¿
- αẽ¿τ¡δσ ߻ѵ¿á½∞¡δσ φΣΣÑ¬Γ«ó. é φΓ«¼ »áαáúαáΣÑ óδ ¡áπτ¿ΓÑß∞,
- ¬á¬ ¼«ª¡« π»αáó½∩Γ∞ óδß«Γ«⌐ ¿ »α«ñ«½ª¿Γѽ∞¡«ßΓ∞ε ºóπτá¡¿∩ ¡«Γ,
- úÑ¡Ñα¿απѼδσ ñ¿¡á¼¿¬«¼ ¬«¼»∞εΓÑαá. îδ Γá¬ªÑ »α«ñѼ«¡ßΓα¿απѼ óá¼
- ¡Ñ¬«Γ«αδÑ ¡á¿í«½ÑÑ ¿¡ΓÑαÑß¡δÑ ºóπ¬«óδÑ φΣΣѬΓδ.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 21 --
-
-
- Åα«úαá¼¼¿απѼδ⌐ Γá⌐¼Ñα 8253.
- -----------------------------
-
- âÑ¡Ñαᵿ∩ ºóπ¬«ó ó ¬«¼»∞εΓÑαÑ PC óδ»«½¡∩ÑΓß∩ ß »«¼«Θ∞ε
- »α«úαá¼¼¿απѼ«ú« Γá⌐¼Ñαá 8253, ¬«Γ«αδ⌐ »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ π»αáó½Ñ¡¿∩
- ¬«½Ñíá¡¿∩¼¿ ñ¿¡á¼¿¬á. ô»αáó½Ñ¡¿Ñ ¬«½Ñíá¡¿∩¼¿ ñ¿¡á¼¿¬á
- «»αÑñѽ∩ÑΓß∩ τáßëë⌐, ¬«Γ«αá∩, ó ßó«ε «τÑαÑñ∞, «»αÑñѽ∩ÑΓß∩
- ß«ñÑন¼δ¼ αẽ¿τ¡δσ ó¡πΓαÑ¡¡¿σ αÑú¿ßΓα«ó. ç¡áτÑ¡¿∩ φΓ¿σ
- αÑú¿ßΓα«ó πßΓá¡áó½¿óáεΓß∩ »α¿ ºá»¿ß¿ ó «»αÑñѽѡ¡δÑ »«αΓδ. Å«αΓ
- 66 ¿ß»«½∞ºπÑΓß∩ ñ½∩ ߻ѵ¿Σ¿¬áµ¿¿ ßτÑΓτ¿¬á, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ
- Γá⌐¼Ñα »α¿ «»αÑñѽѡ¿¿ ¿¡ΓÑαóá½á ¬«½Ñíá¡¿⌐ ñ¿¡á¼¿¬á. Æá⌐¼Ñα
- αáí«ΓáÑΓ ó ßΓα«ú«¼ ß««ΓóÑΓßΓó¿¿ ß τáßëë⌐ ß¿ßΓѼ¡«ú« Γá⌐¼Ñαá ¿
- ߻ѵ¿Σ¿µ¿α«óá¡¡δ¼ º¡áτÑ¡¿Ñ¼ ßτÑΓτ¿¬á, «»αÑñѽ∩εΘ¿¼ ¬«½Ñíá¡¿∩
- ñ¿¡á¼¿¬á. çáΓѼ, »«ß½Ñ «í¡π½Ñ¡¿∩ ßτÑΓτ¿¬á »α«¿ßσ«ñ¿Γ πßΓá¡«ó¬á
- ¡«ó«ú« º¡áτÑ¡¿∩ ßτÑΓτ¿¬á, ¿ óÑß∞ µ¿¬½ Σπ¡¬µ¿«¡¿α«óá¡¿∩
- »α«úαá¼¼¿απѼ«ú« Γá⌐¼Ñαá »«óΓ«α∩ÑΓß∩ ß¡áτá½á. ç¡áτÑ¡¿Ñ ßτÑΓτ¿¬á
- «»αÑñѽ∩ÑΓß∩ »« ß½ÑñπεΘÑ⌐ Σ«α¼π½Ñ:
-
- count = 1,193,180/ΓαÑíπѼá∩ τáßΓ«Γá
-
- úñÑ 1,193,180 ÑßΓ∞ Γá¬Γ«óá∩ τáßΓ«Γá ß¿ßΓѼ¡«ú« Γá⌐¼Ñαá.
-
- ÉÑú¿ßΓα-ßτÑΓτ¿¬ Γá⌐¼Ñαá 8253 πßΓá¡áó½¿óáÑΓß∩ ó ß½ÑñπεΘÑ⌐
- »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ (º¡áτÑ¡¿Ñ ßτÑΓτ¿¬á ºáñáÑΓß∩ ñóπσíá⌐Γ¡δ¼
- τ¿ß½«¼):
-
- 1. éδñáΓ∞ ó »«αΓ 67 º¡áτÑ¡¿Ñ 182 («º¡áτáεΘÑÑ, τΓ« íπñÑΓ
- πßΓá¡áó½¿óáΓ∞ß∩ ßτÑΓτ¿¬).
-
- 2. éδñáΓ∞ ó »«αΓ 66 ¼½áñΦ¿⌐ íá⌐Γ τ¿ß½á, «»αÑñѽ∩εΘÑú« º¡áτÑ¡¿Ñ
- ßτÑΓτ¿¬á.
-
- 3. éδñáΓ∞ ó »«αΓ 66 ßΓáαΦ¿⌐ íá⌐Γ τ¿ß½á, «»αÑñѽ∩εΘÑú« º¡áτÑ¡¿Ñ
- ßτÑΓτ¿¬á.
-
- 信Ἷ¬¿ í«½∞Φ¿¡ßΓóá ¬«¼»∞εΓÑα«ó ¬½áßßá PC ¡Ñ »«ºó«½∩εΓ
- ó«ß»α«¿ºó«ñ¿Γ∞ »«½¡δ⌐ ߻ѬΓα τáßΓ«Γ, ó«ß»α¿¡¿¼áѼδσ τѽ«óÑτÑ߬¿¼
- ß½πσ«¼ («Γ 20 âµ ñ« 18.000 âµ). Äñ¡á¬« ñ¿¡á¼¿¬ »«ºó«½∩ÑΓ
- ó«ß»α«¿ºó«ñ¿Γ∞ ¡«Γδ ½πτΦÑ, τѼ ñ¿¡á¼¿¬¿ ñαπú¿σ ¬«¼»∞εΓÑα«ó ó
- »αÑñѽáσ 12000 âµ ¿ ñáªÑ óδΦÑ. é «ß¡«ó¡«¼ ªÑ ñ¿¡á¼¿¬ ¿ß»«½∞ºπÑΓß∩
- ó »αÑñѽáσ 100-5000 âµ.
-
- êΓá¬, Γá⌐¼Ñα πßΓá¡«ó½Ñ¡. Äñ¡á¬« ñ¿¡á¼¿¬ ÑΘÑ ¡Ñ íπñÑΓ
- ó«ß»α«¿ºó«ñ¿Γ∞ ºóπ¬, Γᬠ¬á¬ ¡Ñ ó¬½ετÑ¡. Æá⌐¼Ñα 8253 á¬Γ¿óÑ¡
- »«ßΓ«∩¡¡«, á ñ¿¡á¼¿¬ ΓαÑíπÑΓ ñ«»«½¡¿Γѽ∞¡«⌐ ¬«¼á¡ñδ ó¬½ετÑ¡¿∩.
- Ç¬Γ¿ó¿ºáµ¿∩ ñ¿¡á¼¿¬á «ßπΘÑßΓó½∩ÑΓß∩ »πΓѼ πßΓá¡«ó¬¿ º¡áτÑ¡¿⌐
- í¿Γ«ó 0 ¿ 1 αÑú¿ßΓαá »α«úαá¼¼¿απѼ«ú« »Ñα¿ΣÑα¿⌐¡«ú« ¿¡ΓÑαΣÑ⌐ßá,
- ºáñá¡¿Ñ º¡áτÑ¡¿⌐ ¬«Γ«α«ú« óδ»«½¡∩ÑΓß∩ τÑαѺ »«αΓ 97. àß½¿
- º¡áτÑ¡¿∩ φΓ¿σ ñóπσ í¿Γ«ó πßΓá¡«ó½Ñ¡δ (αáó¡δ 1), Γ« ñ¿¡á¼¿¬ ¿ºñáÑΓ
- ºóπ¬ τáßëë⌐, πßΓá¡«ó½Ñ¡¡«⌐ ßτÑΓτ¿¬«¼ 8253. àß½¿ º¡áτÑ¡¿∩ φΓ¿σ
- í¿Γ«ó αáó¡δ 0, Γ« ¡¿¬á¬«⌐ ºóπ¬ úÑ¡Ñα¿α«óáΓ∞ß∩ ¡Ñ íπñÑΓ. ÄßΓá½∞¡δÑ
- í¿Γδ φΓ«ú« íá⌐Γá ¿ß»«½∞ºπεΓß∩ ñαπú¿¼¿ πßΓα«⌐ßΓóἿ, »«φΓ«¼π
- ¿¡ΓÑα»αÑΓᵿ∩ º¡áτÑ¡¿∩ ½Ñóδσ í¿Γ«ó ¡Ñ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á. Æá¬¿¼
- «íαẫ¼, ñ½∩ πßΓá¡«ó¬¿ º¡áτÑ¡¿⌐ π»αáó½∩εΘ¿σ ñ¿¡á¼¿¬«¼ í¿Γ
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 22 --
-
-
- ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ñÑ⌐ßΓó¿⌐:
-
- 1. Å«½πτ¿Γ∞ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ αÑú¿ßΓαá ¿º »«αΓá 97.
- 2. æαáó¡¿Γ∞ φΓ« º¡áτÑ¡¿Ñ ß 3 ¿½¿ πßΓá¡«ó¿Γ∞ αáó¡δ¼ 3.
- 3. çỿßáΓ∞ αѺπ½∞ΓáΓ ó »«αΓ 97.
-
- ä½∩ Γ«ú«, τΓ«íδ ó䬽ετ¿Γ∞ ñ¿¡á¼¿¬, ¡Ñ«íσ«ñ¿¼« »ÑαÑß½áΓ∞ ó
- »«αΓ º¡áτÑ¡¿Ñ 253.
-
- Åα«ßΓÑ⌐Φ¿¼ »α¿Ñ¼«¼, »«ºó«½∩εΘ¿¼ τ¿ΓáΓ∞ ¿ »¿ßáΓ∞ íá⌐Γ ¿º ¿½¿
- ó »«αΓ, ó æ¿ ∩ó½∩ÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ ß««ΓóÑΓßΓóπεΘ¿σ Σπ¡¬µ¿⌐. é
- Æπαí« C¿ - φΓ« Σπ¡¬µ¿¿ inportb() ¿ outportb(). é Microsoft C¿ -
- φΓ« Σπ¡¬µ¿¿ inp() ¿ outp(). Ä¡¿ ¿¼ÑεΓ ß½ÑñπεΘ¿⌐ «íΘ¿⌐ Σ«α¼áΓ:
-
- int inportb(int port);
- void outportb(int port, char value);
- int inp(unsigned port);
- int outp(unsigned port, int value);
-
- é ñαπú¿σ ¬«¼»¿½∩Γ«αáσ æ¿ φΓ¿ Σπ¡¬µ¿¿ ¼«úπΓ ¿¼ÑΓ∞ ¿¡δÑ
- ¡áºóá¡¿∩, ¡« «í∩ºáΓѽ∞¡« íπñπΓ »α¿ßπΓßΓó«óáΓ∞ ó óáΦÑ⌐ í¿í½¿«ΓѬÑ,
- Γᬠ¬á¬ ∩ó½∩εΓß∩ «ñ¡¿¼¿ ¿º íẫóδσ Σπ¡¬µ¿⌐ óÑαß¿⌐ æ¿ ñ½∩ Å¥éî. é
- »α«úαá¼¼áσ, »α¿óÑñÑ¡¡δσ ó φΓ«¼ »áαáúαáΣÑ, ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿¿
- Æπαí« C¿.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 23 --
-
-
- Åα«ßΓÑ⌐Φ¿⌐ ß»«ß«í »α«óÑન ß½πσá.
- ---------------------------------
-
- éδ «í½áñáÑΓÑ ó«º¼«ª¡«ßΓ∞ε ßñѽáΓ∞ ¡Ñ߬«½∞¬« úαπíδ⌐, ¡«
- φΣΣÑ¬Γ¿ó¡δ⌐ ΓÑßΓ ß½πσá, ¬«Γ«αδ⌐ ó ß«ßΓ«∩¡¿¿ «í¡áαπª¿Γ∞ ¡Ñ¬«Γ«αδÑ
- Γ¿»δ ñÑΣѬΓá ß½πσá. èᬠóδ αá¡ÑÑ πº¡á½¿, ñ¿¡á¼¿¬ í«½∞Φ¿¡ßΓóá
- ¬«¼»∞εΓÑα«ó ßÑα¿¿ PC ¡Ñ ó«ß»α«¿ºó«ñ¿Γ ºó㪨 óδΦÑ 12000 âµ. Äñ¡á¬«
- α∩ñ ½εñÑ⌐, 𠬫ëαδσ «Γ¼ÑτÑ¡δ ¡Ñ¬«Γ«αδÑ «Γ¬½«¡Ñ¡¿∩ ß½πσá, ¡Ñ
- ¼«úπΓ πß½δΦáΓ∞ ºóπ¬ ñáªÑ Γᬫ⌐ τáßΓ«Γδ. öá¬Γ¿τÑ߬¿, ΓÑßΓ¿απ∩ ßó«⌐
- ß½πσ, óδ íπñÑΓÑ ¡Ñ߬«½∞¬« πñ¿ó½Ñ¡δ ΓѼ, ¡á߬«½∞¬« óδß«¬¿¼
- «¬áªÑΓß∩ ºóπ¬ ß τáßëë⌐ 12000 âµ. (ÅαÑñπ»αѪñÑ¡¿Ñ: ΓÑßΓ¿α«óá¡¿Ñ
- ß½πσá ß »«¼«Θ∞ε φΓ«ú« ΓÑßΓá ¼«ª¡« »α«¿ºó«ñ¿Γ∞ ½¿Φ∞ αáñ¿ ΦπΓ¬¿.
- Ä¡, ÑßΓÑßΓóÑ¡¡«, ¡Ñ »«ºó«½∩ÑΓ ñÑ⌐ßΓó¿Γѽ∞¡« «µÑ¡¿Γ∞ ß½πσ
- ¿ß»δΓπѼ«ú«. Å«φΓ«¼π, Ñß½¿ óδ ºá¼ÑΓ¿½¿ π ßÑí∩ ñÑΣѬΓδ ß½πσá ¿½¿
- σ«Γ¿ΓÑ ñÑ⌐ßΓó¿Γѽ∞¡« »α«óÑα¿Γ∞ ßó«⌐ ß½πσ, «íαáΓ¿ΓÑß∞ ½πτΦÑ ¬
- ßó«Ñ¼π óαáτπ).
-
- ä½∩ »«½πτÑ¡¿∩ ºóπ¬á ó ΓÑßΓÑ ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩ sound(),
- ¬«Γ«αá∩ úÑ¡Ñα¿απÑΓ ¡Ñ»α«ñ«½ª¿Γѽ∞¡«Ñ ºóπτá¡¿Ñ ß»Ñµ¿Σ¿µ¿α«óá¡¡«⌐
- ¡«Γδ. èᬠ»«¬áºá¡« ¡¿ªÑ, φΓá Σπ¡¬µ¿∩ ß«ñÑαª¿Γ óßÑ ¡Ñ«íσ«ñ¿¼«Ñ ñ½∩
- Γ«ú«, τΓ«íδ ßúÑ¡Ñα¿α«óáΓ∞ ½εí«⌐ ºóπ¬ ß »«¼«Θ∞ε ñ¿¡á¼¿¬á
- ¬«¼»∞εΓÑαá.
-
- /* çóπτá¡¿Ñ ñ¿¡á¼¿¬á ¡á ºáñá¡¡«⌐ τáßΓ«ΓÑ */
-
- void sound(freq)
- int freq;
- {
- unsigned i;
- union {
- long divisor;
- unsigned char c[2];
- } count;
-
- unsigned char p;
-
- count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡Ñíσ«ñ¿¼«ú«
- º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
- πßΓá¡«ó¬¿ ßτÑΓτ¿¬á */
- outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
- outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
- p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
- outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ«ó 0 ¿ 1 */
-
- for (i=0;i<64000;++i); /* µ¿¬½ ºáñÑ᪬¿ */
-
- outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ »Ñαó«¡áτá½∞¡«ú« º¡áτÑ¡¿∩
- Φáí½«¡á í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
- }
-
-
-
- çá¼ÑΓ¿¼, τΓ« τáßΓ«Γá ºóπτá¡¿∩ ¡«Γδ ߻ѵ¿Σ¿µ¿α«óá¡á ¬á¬
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 24 --
-
-
- áαúπ¼Ñ¡Γ Σπ¡¬µ¿¿. û¿¬½ ºáñÑ᪬¿ ¡Ñ«íσ«ñ¿¼, Γᬠ¬á¬ íѺ ¡Ñú« óδ íδ
- πß½δΦ὿ Γ«½∞¬« ¼ú¡«óÑ¡¡δ⌐ "Θѽτ«¬" ¿½¿ "»¿ß¬". éδ ¼«ªÑΓÑ
- ¿º¼Ñ¡¿Γ∞ τáßΓ«Γπ αáí«Γδ ß¿ßΓѼ¡«ú« Γá⌐¼Ñαá »α«µÑßß«αá óáΦÑú«
- ¬«¼»∞εΓÑαá. Åα¿ φΓ«¼, «Σ«α¼¿ó Ñú« ¬á¬ »áαá¼ÑΓα Σπ¡¬µ¿¿, óδ
- ñ«í∞ÑΓÑß∞ «»αÑñѽѡ¡«⌐ φΣΣÑ¬Γ¿ó¡«ßΓ¿ óáΦÑ⌐ »α«úαá¼¼δ. öπ¡¬µ¿∩
- sound() ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¿ ñ½∩ »«½πτÑ¡¿∩ íá¡á½∞¡«ú«
- "»¿Θá¡¿∩" ¬«¼»∞εΓÑαá.
-
- ô»αáó½∩εΘá∩ Σπ¡¬µ¿∩ ñ½∩ »α«úαá¼¼δ ΓÑßΓá ß½πσá »αÑñßΓáó½Ñ¡á
- ¡¿ªÑ.
-
-
- /* Åα«ßΓÑ⌐Φ¿⌐ ΓÑßΓ ß½πσá */
-
- #include "dos.h"
-
- void sound();
-
- main()
- {
- int freq;
-
- do {
- printf(" éóÑñ¿ΓÑ τáßΓ«Γπ ( 0 - óδσ«ñ ): ");
- scanf("%d",&freq);
- if ( freq ) sound(freq);
- } while(freq);
- }
-
-
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ΓÑßΓá, ó ó«ºαáßΓáεΘѼ »«α∩ñ¬Ñ π¬áºδóá⌐ΓÑ
- τáßΓ«Γπ ºóπ¬á ñ« ΓÑσ »«α, »«¬á ºóπ¬ ó«ß»α¿¡¿¼áÑΓß∩ ¡á ß½πσ. ä½∩
- óδσ«ñá óóÑñ¿ΓÑ 0.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 25 --
-
-
- 꼿Γᵿ∩ ºóπ¬á ß¿αÑ¡δ ¿ óºóαδóδ.
- --------------------------------
-
- éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ 󫺼«ª¡«ßΓ∞ π»αáó½Ñ¡¿∩ ñ¿¡á¼¿¬«¼ ñ½∩
- ß«ºñá¡¿∩ αẽ¿τ¡δσ ºóπ¬«óδσ φΣΣÑ¬Γ«ó, ¬«Γ«αδÑ, ó τáßΓ¡«ßΓ¿,
- ñѽáεΓ ó¿ñÑ«¿úαδ «τÑ¡∞ ¿¡ΓÑαÑß¡δ¼¿ ¿ »α¿ó½Ñ¬áΓѽ∞¡δ¼¿. é «ß¡«óÑ
- óßÑσ ºóπ¬«óδσ φΣΣÑ¬Γ«ó ½Ñª¿Γ óáα∞¿α«óá¡¿Ñ τáßΓ«Γδ ºóπ¬á - τáßΓ«
- ßá¼δ¼ ¡Ñ«íδτ¡δ¼ «íαẫ¼.
-
- ìá»α¿¼Ñα, ñ½∩ ß«ºñá¡¿∩ φΣΣѬΓá ºóπτá¡¿∩ ß¿αÑ¡δ óδ ñ«½ª¡δ
- óáα∞¿α«óáΓ∞ τáßΓ«Γπ ºóπ¬á ¼Ñªñπ ñóπ¼∩ ¬«¡Ñτ¡δ¼¿ Γ«τ¬á¼¿. éδß«Γá
- ºóπ¬á ñ«½ª¡á ¿º¼Ñ¡∩Γ∞ß∩ «Γ ¼Ñ¡∞ΦÑ⌐ ¬ í«½∞ΦÑ⌐, á ºáΓѼ π¼Ñ¡∞ΦáΓ∞ß∩
- «Γ í«½∞ΦÑ⌐ ¬ ¼Ñ¡∞ΦÑ⌐. öπ¡¬µ¿∩ siren(), »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ,
- ¿ß»«½∞ºπÑΓ φëà ¼ÑΓ«ñ ñ½∩ ß«ºñá¡¿∩ φΣΣѬΓá ºóπτá¡¿∩ ß¿αÑ¡δ.
-
-
- #define DELAY 10000
-
- /* 櫺ñá¡¿Ñ φΣΣѬΓá ºóπτá¡¿∩ ß¿αÑ¡δ */
- void siren()
- {
- unsigned i,freq;
- union {
- long divisor;
- unsigned char c[2];
- } count;
-
- unsigned char p;
-
- p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
- outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ 0 ¿ 1 */
- /* »«óδΦÑ¡¿Ñ ºóπ¬á ß¿αÑ¡δ */
- for (freq = 1000;freq<3000;freq+=RATE) {
- count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
- º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
- «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
- outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
-
- for (i=0;i<DELAY;++i);
- }
-
- /* »«¡¿ªÑ¡¿Ñ ºóπ¬á ß¿αÑ¡δ */
- for (;freq>1000;freq-=RATE) {
- count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
- º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
- «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
- outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
-
- for (i=0;i<DELAY;++i);
- }
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 26 --
-
-
- outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¡áτá½∞¡«ú« ó¿ñá Φáí½«¡á
- í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
- }
-
- éδ ¼«ªÑΓÑ »ÑαÑ«»αÑñѽ¿Γ∞ º¡áτÑ¡¿Ñ ¼á¬α«ßá DELAY ó
- ºáó¿ß¿¼«ßΓ¿ «Γ »α«¿ºó«ñ¿Γѽ∞¡«ßΓ¿ óáΦÑú« ¬«¼»∞εΓÑαá ¿ óáΦÑú«
- ó¬πßá. èᬠóδ ó¿ñ¿ΓÑ, Σπ¡¬µ¿∩ siren() óδ»«½¡∩ÑΓ «ñ¿¡ »«½¡δ⌐ µ¿¬½
- ºóπτá¡¿∩ ß¿αÑ¡δ ¿ ¡á φΓ«¼ ºáóÑαΦáÑΓ ßó«ε αáí«Γπ. ä½∩ »«½πτÑ¡¿∩
- φΣΣѬΓá »α«ñ«½ª¿Γѽ∞¡«ú« ºóπτá¡¿∩ ß¿αÑ¡δ óá¼ ¡áñ« »«¼ÑßΓ¿Γ∞
- «íαáΘÑ¡¿Ñ ¬ siren() ó µ¿¬½.
-
- ä½∩ ¿¼¿Γᵿ¿ ºóπ¬á óºαδóá, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó« ¼¡«ú¿σ
- ó¿ñÑ«¿úαáσ, ¼«ª¡« ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σπ¡¬µ¿ε siren() Γᬿ¼ «íαẫ¼,
- τΓ«íδ «¡á »«ºó«½∩½á úÑ¡Ñα¿α«óáΓ∞ ºóπ¬ ½¿Φ∞ ¡¿ßσ«ñ∩ΘÑ⌐ τáßΓ«Γδ.
- öπ¡¬µ¿∩ laser(), »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ, »«ºó«½∩ÑΓ »«½πτ¿Γ∞ φΓ«Γ
- φΣΣѬΓ.
-
-
- #define DELAY 10000
- /* »«½πτÑ¡¿Ñ φΣΣѬΓá óºαδóá */
- void laser()
- {
- unsigned i,freq;
- union {
- long divisor;
- unsigned char c[2];
- } count;
-
- unsigned char p;
-
- p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
- outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ 0 ¿ 1 */
- /* óºαδó */
- for (;freq>1000;freq-=RATE) {
- count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
- º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
- «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
- outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
-
- for (i = 0;i<DELAY;++i);
- }
- outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¡áτá½∞¡«ú« ó¿ñá Φáí½«¡á
- í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
- }
-
-
-
- Å«ß½Ñ ¡Ñí«½∞Φ«ú« φ¬ß»Ñα¿¼Ñ¡Γ¿α«óá¡¿∩ óδ ß¼«ªÑΓÑ ßἿ
- ß«ºñáóáΓ∞ Φ¿α«¬¿⌐ ߻ѬΓα ºóπ¬«óδσ φΣΣÑ¬Γ«ó. ê¡ΓÑαÑß »αÑñßΓáó½∩ÑΓ
- óáα∞¿α«óá¡¿Ñ ß¬«α«ßΓ∞ε ¿º¼Ñ¡Ñ¡¿∩ τáßΓ«Γδ ºóπ¬á ñ½∩ »«½πτÑ¡¿∩
- «»αÑñѽѡ¡δσ φΣΣÑ¬Γ«ó.
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 27 --
-
-
-
- 櫺ñá¡¿Ñ "¬«ß¼¿τÑ߬«⌐ ¼πºδ¬¿".
- ------------------------------
-
- æ«Ññ¿¡¿ó ó«Ññ¿¡« »α«¿ºó«½∞¡«Ñ ¬«½¿τÑßΓó« ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐
- æ¿ rend() ¿ sound(), óδ ß«ºñáñ¿ΓÑ "¬«ß¼¿τÑ߬πε" ¼πºδ¬π. çóπ¬,
- »«½πτáѼδ⌐ »α¿ óδ»«½¡Ñ¡¿¿ »α«úαá¼¼δ, »αÑñßΓáó½Ñ¡¡«⌐ ¡¿ªÑ,
- ¡á»«¼¿¡áÑΓ "¼πºδ¬π ºóѺñ" ó ßΓáαδσ ¡áπτ¡«-Σá¡ΓáßΓ¿τÑ߬¿σ Σ¿½∞¼áσ.
- ìÑß¼«Γα∩ ¡á Γ«, τΓ« óßÑ ºó㪨 úÑ¡Ñα¿απεΓß∩ »α«¿ºó«½∞¡δ¼ «íαẫ¼,
- α¿Γ¼ ¿ α¿ßπ¡«¬ ¼Ñ½«ñ¿¿, 󫺡¿¬áεΘ¿Ñ óαѼ∩ «Γ óαѼѡ¿,
- ñÑ⌐ßΓó¿Γѽ∞¡« «ßΓáó½∩εΓ ó»ÑτáΓ½Ñ¡¿Ñ "¡ÑíÑß¡«⌐ ¼πºδ¬¿".
-
- /* è«ß¼¿τÑ߬á∩ ¼πºδ¬á ºóѺñ */
-
- #define DELAY 64000
-
- #include "dos.h"
-
- void sound();
-
- main()
- {
- int freq;
-
- do {
- do {
- freq = rand();
- } while (freq>5000); /* »«ß½Ñ »Ñαß«¡á½∞¡«ú«
- »α«ß½πΦ¿óá¡¿∩ */
- sound(freq);
- } while (!kbhit());
- }
-
- /* ºóπτá¡¿Ñ ñ¿¡á¼¿¬á ¡á ߻ѵ¿Σ¿µ¿α«óá¡¡«⌐ τáßΓ«ΓÑ */
- void sound(freq)
- int freq;
- {
- unsigned i;
- union {
- long divisor;
- unsigned char c[2];
- } count;
-
- unsigned char p;
- count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
- º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
- «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
- outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
- outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
-
- p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
- outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ 0 ¿ 1 */
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
- â½áóá VIII -- 28 --
-
-
- for (i = 0;i<DELAY;++i); /* ºáñÑ᪬á 64000 ñ½∩ 10+ îúµ
- ¬«¼»∞εΓÑα«ó
- 32000 ñ½∩ 6 îâµ PC/AT
- 20000 ñ½∩ ßΓá¡ñáαΓá PC ¿ XT */
-
- outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¡áτá½∞¡«ú« ó¿ñá
- Φáí½«¡á í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
- }
-
- ¥Γá »α«úαá¼¼á úÑ¡Ñα¿απÑΓ ºó㪨 τáßëë⌐ ¼Ñ¡ÑÑ 5000 âµ, Γá¬
- ¬á¬ ºó㪨 ¿¼Ñ¡¡« ó »αÑñѽáσ φΓ«⌐ τáßΓ«Γδ ¡á¿í«½ÑÑ ¼∩ú¬«
- ó«ß»α¿¡¿¼áεΓß∩ ß½πσ«¼ ¿ ¡Ñ óδσ«ñ∩Γ ºá úαá¡¿µδ, ó«ß»α¿¡¿¼áѼδÑ
- πσ«¼ τѽ«óѬá.
-
- ÉѬ«¼Ñ¡ñπѼ óá¼ »«φ¬ß»Ñα¿¼Ñ¡Γ¿α«óáΓ∞ ß φΓ«⌐ »α«úαá¼¼«⌐,
- πßΓá¡«ó¿ó »α«¿ºó«½∞¡πε ñ½¿¡π ¿¡ΓÑαóá½á óαѼѡ¿ ¼Ñªñπ ºóπ¬á¼¿ ¿½¿
- Σ¿½∞Γαπ∩ º¡áτÑ¡¿∩, »ÑαÑñáóáѼδÑ ó sound(). 髺¼«ª¡δ ¿ ñαπú¿Ñ
- óáα¿á¡Γδ αáºó¿Γ¿∩ óáΦÑú« Γó«ατÑßΓóá.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó