home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / c.doc / 08.prn < prev    next >
Encoding:
Text File  |  1990-12-05  |  52.7 KB  |  1,681 lines

  1.                                   âïÇéÇ 8                     -- 1 --
  2.                                   -------
  3.  
  4.                 Ä îÇìêÅôïêÉÄéÇìêê ¥èÉÇìÄî ê âàìàÉÇûêê çéôèÇ
  5.      -----------------------------------------------------------------
  6.  
  7.           ìá óßѼ »α«Γ∩ªÑ¡¿¿ φΓ«⌐ ¬¡¿ú¿ ¼δ ¬áß὿ß∞,  ó «ß¡«ó¡«¼,  ΓÑσ
  8.      áß»Ñ¬Γ«ó  »α«úαá¼¼¿α«óá¡¿∩  ¡á  æ¿,  ¬«Γ«αδÑ ¼«úπΓ ºá¿¡ΓÑαÑß«óáΓ∞
  9.      »α«ΣÑßß¿«¡á½∞¡δσ   »α«úαá¼¼¿ßΓ«ó,    τ∞Ñ     «ß¡«ó¡«Ñ     ºá¡∩Γ¿Ñ
  10.      »α«úαá¼¼¿α«óá¡¿Ñ   ¡á   æ¿.  Æá¬  ¬á¬  ó«º¼«ª¡«ßΓ¿  »α«úαá¼¼δ  »«
  11.      óºá¿¼«ñÑ⌐ßΓó¿ε    ß    »«½∞º«óáΓѽѼ     τáßΓ«     «úαá¡¿τ¿óáεΓß∩
  12.      ó«º¼«ª¡«ßΓ∩¼¿,   »αÑñßΓáó½Ñ¡¡δ¼¿   ó   αἬáσ   »«½∞º«óáΓѽ∞߬«ú«
  13.      ¿¡ΓÑαΣÑ⌐ßá,  Γ« ó φΓ«⌐ ú½áóÑ ß«ñÑαªáΓß∩ ºáóÑαΦÑ¡¡δÑ ßóÑñÑ¡¿∩, Γá¬
  14.      ß¬áºáΓ∞,    «¬«¡τáΓѽ∞¡á∩   Γ«τ¬á   ºαÑ¡¿∩   ¡á   ó«º¼«ª¡«ßΓ∞   ¿
  15.      µÑ½Ñß««íαạ«ßΓ∞ ¼á¡¿»π½¿α«óá¡¿∩ ß φ¬αá¡«¼ ñ¿ß»½Ñ∩ »α¿ αáºαáí«Γ¬Ñ
  16.      »«½∞º«óáΓѽ∞߬«ú«  ¿¡ΓÑαΣÑ⌐ßá.  Äß¡«ó¡«Ñ  ó¡¿¼á¡¿Ñ  ó  φΓ«⌐ ú½áóÑ
  17.      πñѽ∩ÑΓß∩ ó«»α«ßá¼  «Γ«íαáªÑ¡¿∩  αẽ¿τ¡δσ  Σαáú¼Ñ¡Γ«ó  ΓѬßΓá  ó
  18.      αạδσ   µóÑΓáσ.   ä«»«½¡¿Γѽ∞¡«  ó  φΓ«⌐  ú½áóÑ  αáßß¼áΓα¿óáεΓß∩
  19.      ¡Ñ¬«Γ«αδÑ  ñαπú¿Ñ  ó«»α«ßδ   »α«úαá¼¼¿α«óá¡¿∩   »«½∞º«óáΓѽ∞߬«ú«
  20.      ¿¡ΓÑαΣÑ⌐ßá   ΓᬿÑ,   ¬á¬  ¿º¼Ñ¡Ñ¡¿Ñ  αẼÑαá  ¿  Σ«α¼δ  ¬παß«αá,
  21.      ß¬α«½½¿¡ú (»α«¬απΓ¬á) τáßΓ¿ ΓѬßΓá, ß«σαá¡Ñ¡¿Ñ ß«ñÑন¼«ú« φ¬αá¡á
  22.      ó   ó¿ñÑ   ñ¿ß¬«ó«ú«  Σá⌐½á.  êß»«½∞º«óá¡¿Ñ  ß«  ó¬πß«¼  ºóπ¬«óδσ
  23.      ó«º¼«ª¡«ßΓÑ⌐ ¬«¼»∞εΓÑαá »«ºó«½∩ÑΓ ó º¡áτ¿Γѽ∞¡«⌐  ¼ÑαÑ  "«ª¿ó¿Γ∞"
  24.      αáí«Γπ  »«½∞º«óáΓѽ∩  ß  óáΦÑ⌐ »α«úαá¼¼«⌐,  á Γá¬ªÑ á¬µÑ¡Γ¿α«óáΓ∞
  25.      ó¡¿¼á¡¿Ñ »«½∞º«óáΓѽ∩ ¡á α∩ñÑ ¼«¼Ñ¡Γ«ó ¿ ß¿Γπᵿ⌐, ó«º¡¿¬áεΘ¿σ ó«
  26.      óαѼ∩ αáí«Γδ. é ßó∩º¿ ß φΓ¿¼ ó ú½áóπ ó¬½ετÑ¡ »áαáúαáΣ, »«∩ß¡∩εΘ¿⌐
  27.      ó«º¼«ª¡«ßΓ¿ »«½∞º«óáΓѽ∩ »« úÑ¡Ñαᵿ¿ ºóπ¬«ó αẽ¿τ¡δσ  τáßëà ¿
  28.      ß«ºñá¡¿ε  αẽ¿τ¡δσ  ºóπ¬«óδσ  φΣΣÑ¬Γ«ó ß ¿ß»«½∞º«ó᡿Ѽ ñ¿¡á¼¿¬á
  29.      ¬«¼»∞εΓÑαá.
  30.  
  31.           Å«ñ»α«úαá¼¼δ, «»¿ßá¡¡δÑ    ó    φΓ«⌐     ú½áóÑ,     ∩ó½∩εΓß∩
  32.      ¼áΦ¿¡¡«-ºáó¿ß¿¼δ¼¿.  Ä¡¿ ¼«úπΓ Σπ¡¬µ¿«¡¿α«óáΓ∞ ¡á IBM PC, XT, AT,
  33.      PS/2 ¿ ß«ó¼ÑßΓ¿¼δσ ß ¡¿¼¿  ¼«ñѽ∩σ.  ü«½∞Φ¿¡ßΓó«  ¿º  »«ñ»α«úαá¼¼
  34.      ΓαÑíπεΓ  ¡á½¿τ¿∩ ó óáΦÑ⌐ ¬«¡Σ¿úπαᵿ¿ ¬«¼»∞εΓÑαá µóÑΓ¡«ú« ñ¿ß»½Ñ∩
  35.      (áñá»ΓÑαá).  àß½¿ óδ ¿¼ÑÑΓÑ  ¡Ñß«ó¼ÑßΓ¿¼δ⌐  ß  óδΦÑ»ÑαÑτ¿ß½Ñ¡¡δ¼¿
  36.      ¼«ñѽ∩¼¿ ¬«¼»∞εΓÑα, Γ« óá¼ ¡Ñ«íσ«ñ¿¼« íπñÑΓ ó¡ÑßΓ¿ ó »«ñ»α«úαá¼¼δ
  37.      ß««ΓóÑΓßΓóπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩.
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  61. â½áóá VIII                                                    -- 2 --
  62.  
  63.  
  64.                 êæÅÄï£çÄéÇìêà ûéàÆÇ é ÆàèæÆÄéÄî Éàåêîà
  65.      -----------------------------------------------------------------
  66.  
  67.           Éá¡ÑÑ óδ    ¼«ú½¿   ó¿ñÑΓ∞   óѽ¿¬«½Ñ»¡δÑ,   »α«ΣÑßß¿«¡á½∞¡«
  68.      ¡á»¿ßá¡¡δÑ »α«úαá¼¼δ, ¬«Γ«αδÑ ¡Ñ ¿ß»«½∞ºπεΓ µóÑΓ«óδѠ󫺼«ª¡«ßΓ¿.
  69.      èᬠ  óδ  πªÑ  π∩ß¡¿½¿  ¿º   â½áóá VIIIδ  1,  ßѼÑ⌐ßΓó«  ¬«¼»∞εΓÑα«ó  PC
  70.      »«ññÑনóáÑΓ  αẽ¿τ¡δÑ  ó¿ñÑ«αѪ¿¼δ.  àß½¿  óδ  ¿¼ÑÑΓÑ  ó  ßó«Ñ⌐
  71.      ß¿ßΓѼѠ µóÑΓ¡«⌐  áñá»ΓÑα,  αѪ¿¼  αáí«Γδ  ¬«Γ«α«ú«  »« π¼«½τá¡¿ε
  72.      πßΓá¡«ó½Ñ¡ αáó¡δ¼ 3,  Γ« φΓ« «º¡áτáÑΓ, τΓ« ß»Ñµ¿Σ¿µ¿α«óá¡ µóÑΓ¡«⌐
  73.      αѪ¿¼   «Γ«íαáªÑ¡¿∩   ΓѬßΓá  80*25  ßΓ᫬.  Å«  π¼«½τá¡¿ε  ΓѬßΓ
  74.      «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ ó íѽ«¼ µóÑΓÑ, «ñ¡á¬«, ¿¼ÑÑΓß∩ ó«º¼«ª¡«ßΓ∞
  75.      «Γ«íαáªáΓ∞ ΓѬßΓ ó ñαπú¿σ µóÑΓáσ.
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  121. â½áóá VIII                                                    -- 3 --
  122.  
  123.  
  124.           ÇΓα¿íπΓ¡δ⌐ íá⌐Γ ΓѬßΓ«ó«ú« αѪ¿¼á.
  125.           ----------------------------------
  126.  
  127.           èáªñδ⌐ ß¿¼ó«½ «Γ«íαáªáÑΓß∩ ¡á φ¬αá¡Ñ  ñ¿ß»½Ñ∩ ó ß««ΓóÑΓßΓó¿¿
  128.      ß Ñú« áΓα¿íπΓ¡δ¼ íá⌐Γ«¼,   «»αÑñѽ∩εΘ¿¼  ¬á¬  ¿¼Ñ¡¡« «Γ«íαáªáÑΓß∩
  129.      ß¿¼ó«½ (ß¼.  ú½áóπ 1).  àß½¿ ¬«¼»∞εΓÑα  ó¬½ετáÑΓ  ó  ßÑí∩ µóÑΓ¡«⌐
  130.      áñá»ΓÑα,  αáí«ΓáεΘ¿⌐ ó ó¿ñÑ«αѪ¿¼Ñ, «»αÑñѽ∩Ѽ«¼ º¡áτÑ¡¿Ñ¼ 3,  Γ«
  131.      ß««ΓóÑΓßΓóπεΘÑÑ   º¡áτÑ¡¿Ñ  áΓα¿íπΓ¡«ú«   íá⌐Γá  «»αÑñѽ∩ÑΓ  µóÑΓ
  132.      «Γ«íαáªáѼ«ú«  ß¿¼ó«½á,   µóÑΓ Σ«¡á,  ¿¡Γѡ߿ó¡«ßΓ∞   «Γ«íαáªÑ¡¿∩
  133.      ß¿¼ó«½á (πα«óÑ¡∞  ∩ᬫßΓ¿),  á ΓᬪѠπßΓá¡áó½¿óáÑΓ  ¿½¿  «Γ¼Ñ¡∩ÑΓ
  134.      αѪ¿¼  ¼Ñαµá¡¿∩  ß¿¼ó«½á.  æ«ßΓáó  áΓα¿íπΓ¡«ú«   íá⌐Γá  »«¬áºá¡ ó
  135.      Æáí½¿µÑ 8.1.
  136.  
  137.           ü¿Γδ 0,  1 ¿ 2 áΓα¿íπΓ¡«ú« íá⌐Γá «»αÑñѽ∩εΓ ¬«¼»«¡Ñ¡Γδ µóÑΓá
  138.      ß¿¼ó«½á. ìá»α¿¼Ñα, Ñß½¿ πßΓá¡«ó½Ñ¡ í¿Γ 0 (º¡áτÑ¡¿Ñ í¿Γá αáó¡« 1),
  139.      Γ« ß¿¼ó«½ «Γ«íαáªáÑΓß∩ ó ú«½πí«¼ µóÑΓÑ.  àß½¿ º¡áτÑ¡¿Ñ óßÑσ  φΓ¿σ
  140.      í¿Γ«ó   ¡Ñ   πßΓá¡«ó½Ñ¡«,   Γ«  ß¿¼ó«½  ∩ó½∩ÑΓß∩  ¡Ñ«Γ«íαáªáѼδ¼.
  141.      çừ¼¡¿ΓÑ,  τΓ« µóÑΓᠡᬽáñδóáεΓß∩ ñαπú ¡á ñαπúá.  àß½¿ º¡áτÑ¡¿∩
  142.      óßÑσ  φΓ¿σ  í¿Γ«ó  πßΓá¡«ó½Ñ¡δ  (αáó¡δ 1),  ß¿¼ó«½ «Γ«íαáªáÑΓß∩ ó
  143.      íѽ«¼ µóÑΓÑ.  àß½¿ óδ πßΓᡫ󿽿 º¡áτÑ¡¿∩ ñóπσ ¿º φΓ¿σ í¿Γ«ó,  Γ«
  144.      íπñÑΓ úÑ¡Ñα¿α«óá¡ ½¿í« ∩ᬫ-¬αáß¡δ⌐, ½¿í« ú«½πí«⌐ (µ¿á¡«óδ⌐) µóÑΓ
  145.      ß¿¼ó«½á.  ü¿Γδ ß 4 »« 6 ¿ß»«½∞ºπεΓß∩ ñ½∩  πßΓᡫ󬿠 µóÑΓá  Σ«¡á.
  146.      àß½¿  º¡áτÑ¡¿Ñ φΓ¿σ í¿Γ«ó ¡Ñ πßΓá¡«ó½Ñ¡« (αáó¡« 0),  Γ« µóÑΓ Σ«¡á
  147.      íπñÑΓ  τÑα¡δ¼,  ó  »α«Γ¿ó¡«¼  ß½πτáÑ  µóÑΓ  Σ«¡á  «»αÑñѽ∩ÑΓß∩  ó
  148.      ß««ΓóÑΓßΓó¿¿ ß« ß»Ñµ¿Σ¿µ¿α«óá¡¡δ¼ º¡áτÑ¡¿Ñ¼ í¿Γ«ó.
  149.  
  150.           ìá ºáαÑ  ¼¿¬α«¬«¼»∞εΓÑα«ó  αѪ¿¼«¼,  ó ¬«Γ«α«¼ ó¿ñѫ߿ßΓѼ«⌐
  151.      «Γ«íαáªá½¿ß∞ ß¿¼ó«½δ »«  π¼«½τá¡¿ε,  íδ½  αѪ¿¼  »«½¡«⌐  ∩ᬫßΓ¿,
  152.      «ñ¡á¬«  ¡áα∩ñπ  ß  φΓ¿¼  αѪ¿¼«¼  ¿¼Ñ½áß∞  ó«º¼«ª¡«ßΓ∞ «Γ«íαáªáΓ∞
  153.      ß¿¼ó«½δ ó αѪ¿¼Ñ »«¡¿ªÑ¡¡«⌐  ∩ᬫßΓ¿.  Å«ß½Ñ  αÑ὿ºáµ¿¿  IBM  PC
  154.      »«½∞º«óáΓÑ½ε  íδ½  »αÑñ½«ªÑ¡  á½∞ΓÑα¡áΓ¿ó¡δ⌐  »πΓ∞:  Å« π¼«½τá¡¿ε
  155.      «Γ«íαáªÑ¡¿Ñ ß¿¼ó«½«ó  ó¿ñѫ߿ßΓѼ«⌐  PC  óδ»«½¡∩ÑΓß∩   ó   αѪ¿¼Ñ
  156.      "¡«α¼á½∞¡«⌐" ∩ᬫßΓ¿, ¡« óδ ¿¼ÑÑΓѠ󫺼«ª¡«ßΓ∞ «Γ«íαáªáΓ∞ ß¿¼ó«½δ
  157.      ó  αѪ¿¼Ñ  »«óδΦÑ¡¡«⌐  ∩ᬫßΓ¿,  πßΓá¡áó½¿óá∩  º¡áτÑ¡¿Ñ   1   ñ½∩
  158.      ß««ΓóÑΓßΓóπεΘÑú« í¿Γá áΓα¿íπΓ¡«ú« íá⌐Γá (í¿Γá »«óδΦÑ¡¡«⌐ ∩ᬫßΓ¿)
  159.      é ñ«íá󫬠¬« óßѼπ óδ ¼«ªÑΓÑ πßΓá¡«ó¿Γ∞ αѪ¿¼  ¼Ñαµá¡¿∩  ß¿¼ó«½á,
  160.      πßΓá¡«ó¿ó º¡áτÑ¡¿Ñ ß««ΓóÑΓßΓóπεΘÑú« í¿Γá.
  161.  
  162.  
  163.      Æáí½¿µá 8-1.
  164.      ------------
  165.      æ«ßΓáó áΓα¿íπΓ¡«ú« íá⌐Γá »α¿ αáí«ΓÑ ó 3 ó¿ñÑ«αѪ¿¼Ñ
  166.      _________________________________________________________________
  167.  
  168.           ü¿Γ            ôßΓá¡áó½¿óáѼ«Ñ º¡áτÑ¡¿Ñ
  169.  
  170.           0               â«½πí«⌐ µóÑΓ ß¿¼ó«½á
  171.           1               çѽѡδ⌐ µóÑΓ ß¿¼ó«½á
  172.           2               èαáß¡δ⌐ µóÑΓ ß¿¼ó«½á
  173.           3               Å«óδΦÑ¡¡á∩ ∩ᬫßΓ∞ ß¿¼ó«½á
  174.           4               â«½πí«⌐ µóÑΓ Σ«¡á
  175.           5               çѽѡδ⌐ µóÑΓ Σ«¡á
  176.           6               èαáß¡δ⌐ µóÑΓ Σ«¡á
  177.           7               îÑαµá¡¿Ñ ß¿¼ó«½á
  178.  
  179.  
  180.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  181. â½áóá VIII                                                    -- 4 --
  182.  
  183.  
  184.      _________________________________________________________________
  185.  
  186.  
  187.           é »αÑñδñπΘ¿σ »áαáúαáΣáσ í뫨  αáßß¼«ΓαÑ¡δ  Σπ¡¬µ¿¿,  ¬«Γ«αδÑ
  188.      óδ»«½¡∩½¿ ßτ¿Γδóá¡¿Ñ  ß¿¼ó«½«ó  ¡á φ¬αá¡,  ¿ß»«½∞ºπ∩ »α¿ φΓ«¼ ¬á¬
  189.      «íαáΘÑ¡¿Ñ ¬ BIOS,  Γᬠ¿ ¡Ñ»«ßαÑñßΓóÑ¡¡δ⌐ ñ«ßΓπ»  ¬  ó¿ñÑ«»á¼∩Γ¿.
  190.      ìÑ»«ßαÑñßΓóÑ¡¡δ⌐   ñ«ßΓπ»   ¬  ó¿ñÑ«»á¼∩Γ¿  ∩ó½∩ÑΓß∩  ¡Ñ«íσ«ñ¿¼δ¼
  191.      πß½«ó¿Ñ¼   »«óδΦÑ¡¿∩   ß¬«α«ßΓ¿   αÑᬵ¿¿   ºáñáτ   ¡á   ñÑ⌐ßΓó¿∩
  192.      »«½∞º«óáΓѽ∩. Äñ¡á¬«   ¡Ñ»«ßαÑñßΓóÑ¡¡δ⌐   ñ«ßΓπ»   ¬  ó¿ñÑ«»á¼∩Γ¿
  193.      º¡áτ¿Γѽ∞¡«  ß¡¿ªáÑΓ  ó«º¼«ª¡«ßΓ∞  »ÑαÑ¡«ß¿¼«ßΓ¿   »α«úαá¼¼   (¿σ
  194.      ¼«í¿½∞¡«ßΓ∞),    á   ΓᬪѠ  ∩ó½∩ÑΓß∩   ßÑα∞Ѻ¡«⌐   »«¼Ñσ«⌐   »α¿
  195.      ¿ß»«½∞º«óá¡¿¿ »α«úαá¼¼  ó  ¼π½∞Γ¿ºáñáτ¡δσ  «»Ñαᵿ«¡¡δσ  ß¿ßΓѼáσ
  196.      Γ¿»á  OS/2.  öπ¡¬µ¿¿,  αáßß¼áΓα¿óáѼδÑ  ó φΓ«⌐ ú½áóÑ,  ¿ß»«½∞ºπεΓ
  197.      ó«º¼«ª¡«ßΓ¿ BIOS ¿ ó¿ñÑ«»á¼∩Γ¿ »« Γ«⌐ »α¿τ¿¡Ñ,  τΓ« ßἿ »«  ßÑíÑ
  198.      φΓ¿ Σπ¡¬µ¿¿ í«½ÑÑ ¼«í¿½∞¡δ ¿,  ó ¬«¡Ñτ¡«¼ ¿Γ«úÑ, ñ½∩ π߬«αÑ¡¿∩ ¿σ
  199.      íδßΓα«ñÑ⌐ßΓó¿∩ «íδτ¡« ¡Ñ ΓαÑíπÑΓß∩ ßΓá¡ñáαΓ¡δ⌐ óδó«ñ  ¡á ñ¿ß»½Ñ⌐.
  200.      æ½ÑñπÑΓ «Γ¼ÑΓ¿Γ∞,  τΓ« ¿¡Γπ¿Γ¿ó¡« ¿ß»«½∞º«óá¡¿Ñ ¡Ñ»«ßαÑñßΓóÑ¡¡«ú«
  201.      ñ«ßΓπ»á ¬ ó¿ñÑ«»á¼∩Γ¿ ∩ó½∩ÑΓß∩ í«½ÑÑ »αÑñ»«τΓ¿Γѽ∞¡δ¼.
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  241. â½áóá VIII                                                    -- 5 --
  242.  
  243.  
  244.           ÄΓ«íαáªÑ¡¿Ñ ßΓ᫬¿ ó «»αÑñѽѡ¡«¼ µóÑΓÑ.
  245.           ----------------------------------------
  246.  
  247.           ÄΓ«íαáªÑ¡¿Ñ ßΓ᫬¿ ó «»αÑñѽѡ¡«¼ µóÑΓÑ  ¡Ñ  ∩ó½∩ÑΓß∩  ßΓ«½∞
  248.      Γαπñ¡«⌐ ºáñáτÑ⌐, ¬á¬ óá¼ ¼«ªÑΓ ¬áºáΓ∞ß∩ ¡á »Ñαóδ⌐ óºú½∩ñ, Ñß½¿ óδ
  249.      ¿ß»«½∞ºπÑΓÑ Σπ¡¬µ¿¿ ºá»¿ß¿ ß¿¼ó«½á,  ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ,  ó  ßó«ε
  250.      «τÑαÑñ∞,  ó«º¼«ª¡«ßΓ¿  BIOS  ¿  ó¿ñÑ«»á¼∩Γ¿ (ROM-BIOS).  ROM-BIOS
  251.      »αÑαδóá¡¿Ñ 10ì,  Σπ¡¬µ¿∩ 9 »«ºó«½∩ÑΓ  «Γ«íαếΓ∞  ΓѬπΘ¿⌐  ß¿¼ó«½
  252.      («ñ¿¡!) ó »«º¿µ¿¿ ¬παß«αá ¿ Ñú« áΓα¿íπΓδ. Åα«í½Ñ¼á ß«ßΓ«¿Γ ½¿Φ∞ ó
  253.      »ÑαѼÑΘÑ¡¿¿ ¬παß«αá »« ºá»¿ßδóáѼ«⌐ óἿ ßΓ᫬Ñ,  ¡«  φΓ«  ñ«½ª¡á
  254.      «ßπΘÑßΓó½∩Γ∞ ¡Ñ»«ßαÑñßΓóÑ¡¡« óáΦá »«ñ»α«úαá¼¼á.
  255.  
  256.           é ß««ΓóÑΓßΓó¿¿ ß  φΓ¿¼  ó«º¡¿¬áÑΓ,  ó«-»Ñαóδσ, ¡Ñ«íσ«ñ¿¼«ßΓ∞
  257.      «»αÑñѽѡ¿∩ ΓѬπΘÑ⌐  »«º¿µ¿¿  ¬παß«αá.  ä½∩  φΓ«ú«   ¿ß»«½∞ºπÑΓß∩
  258.      Σπ¡¬µ¿∩   read_cursor_xy(),   »αÑñßΓáó½Ñ¡¡á∩  ¡¿ªÑ.  ¥Γá  Σπ¡¬µ¿∩
  259.      ¿ß»«½∞ºπÑΓ ROM-BIOS-»αÑαδóá¡¿Ñ 10ì, Σπ¡¬µ¿ε 3, ñ½∩ τΓÑ¡¿∩ ΓѬπΘ¿σ
  260.      ¬««αñ¿¡áΓ  »«º¿µ¿¿  ¬παß«αá  X  ¿  Y.  è««αñ¿¡áΓδ »«º¿µ¿¿ ¬παß«αá
  261.      ó«ºóαáΘáεΓß∩ ó ¬áτÑßΓóÑ º¡áτÑ¡¿⌐ áαúπ¼Ñ¡Γ«ó Σπ¡¬µ¿¿.
  262.  
  263.           /* ùΓÑ¡¿Ñ ΓѬπΘ¿σ ¬««αñ¿¡áΓ »«º¿µ¿¿ ¬παß«αá */
  264.      void read_cursor_xy(x,y)
  265.      char *x,*y;
  266.      {
  267.           union REGS r;
  268.  
  269.           r.h.ah = 3;  /* τΓÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá */
  270.           r.h.bh = 0;  /* ó¿ñÑ«ßΓαá¡¿µá */
  271.           int86(0x10,&r,&r);
  272.           *y = r.h.dl;
  273.           *x = r.h.dh;
  274.      }
  275.  
  276.           Å«ß½Ñ «»αÑñѽѡ¿∩   ¬««αñ¿¡áΓ   ΓѬπΘÑ⌐   »«º¿µ¿¿   ¬παß«αá,
  277.      Σπ¡¬µ¿∩, ¬«Γ«αá∩  óδ»«½¡∩ÑΓ  »ÑτáΓ∞  ßΓ᫬¿,  ñ«½ª¡á  «ßπΘÑßΓó¿Γ∞
  278.      »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá ¬ ß½ÑñπεΘѼπ ß¿¼ó«½π,  ß ΓѼ, τΓ«íδ ¿ß»«½∞ºπ∩
  279.      ROM-BIOS-»αÑαδóá¡¿Ñ  ¡á»ÑτáΓáΓ∞  Ñú«.  ä½∩  »ÑαѼÑΘÑ¡¿∩   ¬παß«αá
  280.      µÑ½Ñß««íαạ«  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε goto_xy(),  ¬«Γ«αá∩ íδ½á πªÑ
  281.      αáßß¼«ΓαÑ¡á αá¡ÑÑ ¿ »α¿ó«ñ¿Γß∩ ó φΓ«⌐ ú½áóÑ ñ½∩ »«½¡«Γδ ¿º½«ªÑ¡¿∩
  282.      ¼áΓÑα¿á½á.
  283.  
  284.           /* ÅÑαѼÑΘÑ¡¿Ñ ¬παß«αá ó »«º¿µ¿ε, ß»Ñµ¿Σ¿µ¿α«óá¡¡πε
  285.              ¬««αñ¿¡áΓἿ X ¿ Y
  286.           */
  287.      void goto_xy (x,y)
  288.      int x,y;
  289.      {
  290.             union REGS r;
  291.  
  292.             r.h.ah = 2; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
  293.             r.h.dl = x; /* ¬««αñ¿¡áΓá ßΓ«½íµá */
  294.             r.h.dh = y; /* ¬««αñ¿¡áΓá ßΓ᫬¿ */
  295.             r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá */
  296.             int86(0x10,&r,&r);
  297.      }
  298.  
  299.  
  300.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  301. â½áóá VIII                                                    -- 6 --
  302.  
  303.  
  304.  
  305.           öπ¡¬µ¿∩ color_puts(),   »αÑñßΓáó½Ñ¡¡á∩   ¡¿ªÑ,    «Γ«íαáªáÑΓ
  306.      ß»Ñµ¿Σ¿µ¿α«óá¡¡πε »«½∞º«óáΓѽѼ ßΓ᫬π ó π¬áºá¡¡«¼ µóÑΓÑ.
  307.  
  308.           /* ÅÑτáΓ∞ ßΓ᫬¿ ó µóÑΓÑ   */
  309.      void color_puts(s,color)
  310.      char *s;  /* ßΓ᫬á */
  311.      char color; /* µóÑΓ ßΓ᫬¿ */
  312.      {
  313.            union REGS r;
  314.            char x,y;
  315.            read_cursor_xy(&x,&y); /* »«½πτÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá
  316.                            */
  317.            while (*s) {
  318.            if (*s == '\n') {  /* «íαáí«Γ¬á ß¿¼ó«½á ¡«ó«⌐ ßΓ᫬¿ */
  319.                printf("\n");
  320.                s++;
  321.                x = 0; y++;  /* »ÑαÑσ«ñ ¡á ß½ÑñπεΘπε ßΓ᫬π */
  322.                continue;
  323.       }
  324.          r.h.ah = 9; /* Σπ¡¬µ¿∩ «Γ«íαáªÑ¡¿∩ ß¿¼ó«½á ¿ Ñú« áΓα¿íπΓ«ó */
  325.          r.h.al = *s++;    /* «Γ«íαáªáѼδ⌐ ß¿¼ó«½ */
  326.          r.h.bl = color;   /* áΓα¿íπΓδ µóÑΓá */
  327.          r.h.bh = 0;       /*ó¿ñÑ«ßΓαá¡¿µá 0 */
  328.          r.x.cx = 1; /* «Γ«íαếΓ∞ ºá Ññ¿¡¿µπ óαѼѡ¿ ( Γá¬Γ ) */
  329.           int86(0x10,&r,&r);
  330.           x++;
  331.           goto_xy(x,y); /* »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá */
  332.       }
  333.      }
  334.  
  335.           èᬠóδ ¼«ªÑΓÑ ó¿ñÑΓ∞,  «Γ«íαáªáѼδ⌐  ß¿¼ó«½  ºá»«¼¿¡áÑΓß∩  ó
  336.      αÑú¿ßΓαÑ  AL,  áΓα¿íπΓδ  µóÑΓá  ß¿¼ó«½á  -  ó αÑú¿ßΓαÑ BL,  ¡«¼Ñα
  337.      ó¿ñÑ«ßΓαá¡¿µδ - ó αÑú¿ßΓαÑ BH,  á ¬«½¿τÑßΓó«  ¿¡ΓÑαóὫó  óαѼѡ¿
  338.      (Γá¬Γ«ó  »α«µÑßß«αá),  ºá  ¬«Γ«α«Ñ  íπñÑΓ  «Γ«íαáªÑ¡  ß¿¼ó«½  - ó
  339.      αÑú¿ßΓαÑ CX.  çá¼ÑΓ¿¼, τΓ« Σπ¡¬µ¿∩ ΓᬪѠ«íαáíáΓδóáÑΓ ß»Ñµ¿á½∞¡δ⌐
  340.      ß¿¼ó«½   ¡«ó«⌐  ßΓ᫬¿  ('\n').  éδ  ¼«ªÑΓÑ  ΓᬪÑ,  »«  ªÑ½á¡¿ε,
  341.      «αúá¡¿º«óáΓ∞ «íαáí«Γ¬π ß¿¼ó«½«ó Γáíπ½∩µ¿¿ ('\t'), ñó«⌐¡δσ ¬áóδτѬ
  342.      (") ¿ ñαπú¿σ ß»Ñµ¿á½∞¡δσ ß¿¼ó«½«ó.
  343.  
  344.           êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿¿ color_puts() »αÑñ»«½áúáÑΓ ¡á½¿τ¿Ñ α∩ñá
  345.      ¼á¬α««»αÑñѽѡ¿⌐ ó ¡áτá½Ñ óδºδóáεΘÑ⌐  Σπ¡¬µ¿ε »α«úαá¼¼δ. ÅÑαÑτÑ¡∞
  346.      ¼á¬α««»αÑñѽѡ¿⌐ »αÑñßΓáó½Ñ¡ ¡¿ªÑ
  347.  
  348.             #define BLUE             1
  349.             #define GREEN        2
  350.             #define RED             4
  351.             #define INTENSE      8
  352.             #define BLUE_BACK    16
  353.             #define GREEN_BACK   32
  354.             #define RED_BACK     64
  355.             #define BLINK        128
  356.  
  357.           êß»«½∞ºπ∩ φΓ¿ ¼á¬α«ßδ, óδ ¼«ªÑΓÑ »« ßó«Ñ¼π πß¼«ΓαÑ¡¿ε óδñáΓ∞
  358.  
  359.  
  360.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  361. â½áóá VIII                                                    -- 7 --
  362.  
  363.  
  364.      ¡á φ¬αá¡ ßΓ᫬π ΓѬßΓá ¡á Σ«¡Ñ πßΓá¡«ó½Ñ¡¡«ú« óἿ µóÑΓá, á ΓᬪÑ
  365.      ßá¼π ßΓ᫬π ó «»αÑñѽѡ¡«¼ óἿ µóÑΓÑ.  éδ ¼«ªÑΓÑ ΓᬪѠπ»αáó½∩Γ∞
  366.      αѪ¿¼«¼ «Γ«íαáªÑ¡¿∩  ßΓ᫬¿  (»«óδΦÑ¡¡á∩  ∩ᬫßΓ∞  ¿½¿ ¼Ñαµá¡¿Ñ).
  367.      è«¼í¿¡¿απ∩ µóÑΓá,  αѪ¿¼δ ¼Ñαµá¡¿∩  ¿½¿  »«óδΦÑ¡¡«⌐  ∩ᬫßΓ¿  ñ½∩
  368.      «ñ¡«ú«  ¿½¿  ß«ó«¬π»¡«ßΓ¿  ß¿¼ó«½«ó,  óδ  ¼«ªÑΓÑ  ñ«í¿Γ∞ß∩ ½εí«ú«
  369.      ªÑ½áѼ«ú« óἿ  φΣΣѬΓá.  ìá»α¿¼Ñα,  »αÑñßΓáó½Ñ¡¡á∩  ¡¿ªÑ  ßΓ᫬á
  370.      »α«úαá¼¼δ »α¿óÑñÑΓ  ¬ «Γ«íαáªÑ¡¿ε ßΓ᫬¿ "Ç φΓ« - ΓѬßΓ" ó αѪ¿¼Ñ
  371.      »«óδΦÑ¡¡«⌐ ∩ᬫßΓ¿ ó ú«½πí«¼ (µ¿á¡«ó«¼) µóÑΓÑ:
  372.  
  373.           color_puts("Ç φΓ« - ΓѬßΓ",GREEN | RED | INTENSE );
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  421. â½áóá VIII                                                    -- 8 --
  422.  
  423.  
  424.           êß»«½∞º«óá¡¿Ñ µóÑΓá.
  425.           --------------------
  426.  
  427.           ä«ó«½∞¡« φΣΣÑ¬Γ¿ó¡«  ¿ß»«½∞º«óá¡¿Ñ  ¼¡«ú«µóÑΓ¡«ú«  ΓѬßΓá  ó
  428.      αẽ¿τ¡δσ   »α¿½«ªÑ¡¿∩σ.  é«  óß∩¬«¼  ß½πτáÑ  ¼¡«ú«µóÑΓ¡δ⌐  ΓѬßΓ
  429.      ß¼«Γα¿Γß∩ óßÑúñᠡἡ«ú« φßΓÑΓ¿τ¡Ñ⌐,  τѼ ¼«¡«σα«¼¡δ⌐. Äñ¡á¬« »α¿
  430.      ¿ß»«½∞º«óá¡¿¿   ¼¡«ú«µóÑΓ¡«ú«  ΓѬßΓá  ¡Ñ«íσ«ñ¿¼«  »α¿ñÑনóáΓ∞ß∩
  431.      ß½ÑñπεΘ¿σ «ß¡«ó¡δσ »«½«ªÑ¡¿⌐:
  432.  
  433.           - êºíÑúá⌐ΓÑ ¿ß»«½∞º«óá¡¿∩ "¡ÑßΓá¡ñáαΓ¡δσ"  µóÑΓ«ó.  ìá¿í«½ÑÑ
  434.      «íΘ¿¼  ½πτΦ¿¼  óáα¿á¡Γ«¼  ∩ó½∩ÑΓß∩ «Γ«íαáªÑ¡¿Ñ íѽδσ ß ¿¼ó«½«ó ¡á
  435.      τÑα¡«¼ Σ«¡Ñ.  ÅαÑñ»«τΓ¿Γѽ∞¡ÑÑ ó¼ÑßΓ« «Γ«íαáªÑ¡¿∩ ¬á¬«⌐-Γ« ó᪡«⌐
  436.      ¿¡Σ«α¼áµ¿¿  ó ¬«¡ΓαáßΓ¡«¼ µóÑΓÑ «Γ«íαáªáΓ∞ ÑÑ ó αѪ¿¼Ñ »«óδΦÑ¡¡«⌐
  437.      ∩ᬫßΓ¿.
  438.  
  439.           - ìá¿í«½ÑÑ  φΣΣÑ¬Γ¿ó¡δ¼ »α¿º¡á¡« ¿ß»«½∞º«óá¡¿Ñ µóÑΓ¡δσ αἫ¬
  440.      φ¬αá¡á ¿ «¬«¡.
  441.  
  442.           - é   α∩ñÑ   ß¿Γπᵿ⌐   »«½Ñº¡δ¼   «¬áºδóáÑΓß∩   «Γ«íαáªÑ¡¿Ñ
  443.      «Γα¿µáΓѽ∞¡«ú« «ßΓáΓ¬á  (¡á»α¿¼Ñα,  ñѡѪ¡«⌐  ßπ¼¼δ)  ó   ¬αáß¡«¼
  444.      µóÑΓÑ.
  445.  
  446.           - ÄΓ«íαáªÑ¡¿Ñ  ΓѬπΘÑ⌐  ßΓ᫬¿  (¿½¿ τáßΓ¿ ΓѬπΘÑ⌐ ßΓ᫬¿) ó
  447.      ¬«¡ΓαáßΓ¡«¼ µóÑΓÑ ∩ó½∩ÑΓß∩,  »«ªá½π⌐,  ½πτΦ¿¼  »α¿Ñ¼«¼  ¿¡ñ¿¬áµ¿¿
  448.      »«½«ªÑ¡¿∩  ñÑ⌐ßΓó¿⌐  »«½∞º«óáΓѽ∩  ¡á  φ¬αá¡Ñ  ó  ΓѬπΘ¿⌐  ¼«¼Ñ¡Γ
  449.      óαѼѡ¿.
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  481. â½áóá VIII                                                    -- 9 --
  482.  
  483.  
  484.                          êçîàìàìêà ÉÇçîàÉÇ èôÉæÄÉÇ
  485.      -----------------------------------------------------------------
  486.  
  487.           ü«½∞Φ¿¡ßΓó« »«½∞º«óáΓѽÑ⌐  ñáªÑ  ¡Ñ  »αÑñßΓáó½∩εΓ  ¡á߬«½∞¬«
  488.      óѽ¿¬¿  ó«º¼«ª¡«ßΓ¿  ßѼÑ⌐ßΓóá  ¼áΦ¿¡  IBM PC.  é τáßΓ¡«ßΓ¿,  «¡¿
  489.      »«ºó«½∩εΓ  ¿º¼Ñ¡∩Γ∞   αẼÑα   ¬παß«αá.   Å«   π¼«½τá¡¿ε   ¬παß«α
  490.      «Γ«íαáªáÑΓß∩  ó ó¿ñÑ «ñ¡«⌐ ¼ÑαµáεΘÑ⌐ ßΓα«τ¬¿ (αáºóÑαΓ¬¿ ñ¿ß»½Ñ∩).
  491.      Äñ¡á¬« »«½∞º«óáΓѽ∞ ¼«ªÑΓ óáα∞¿α«óáΓ∞ αẼÑα«¼ ¬παß«αá  «Γ  «ñ¡«⌐
  492.      ßΓ᫬¿  αáºóÑαΓ¬¿ ñ¿ß»½Ñ∩ ñ« »«½¡«ú« αẼÑαá (óδß«Γδ) ß¿¼ó«½á.  é
  493.      µóÑΓ¡«¼ ΓѬßΓ«ó«¼ αѪ¿¼Ñ ¬παß«α ¼«ªÑΓ ¿¼ÑΓ∞  óδß«Γπ  «Γ  0  ñ«  8
  494.      ßΓ᫬ αáºóÑαΓ¬¿.  (é ¼«¡«σα«¼¡«¼ αѪ¿¼Ñ ¬παß«α ¼«ªÑΓ ¿¼ÑΓ∞ óδß«Γπ
  495.      «Γ 0 ñ« 14 ßΓ᫬ αáºóÑαΓ¬¿,  «ñ¡á¬« ó ñá¡¡«¼ »áαáúαáΣÑ  ¼δ  íπñѼ
  496.      αáßß¼áΓα¿óáΓ∞  Γ«½∞¬«  µóÑΓ¡«⌐  αѪ¿¼).  ì¿ª¡∩∩  ßΓ᫬á αáºóÑαΓ¬¿
  497.  
  498.      ¿¼ÑÑΓ ¡«¼Ñα 0. ïπτΦÑ óßÑú« αáßß¼áΓα¿óáΓ∞ ¿º¼Ñ¡Ñ¡¿Ñ ¬παß«αá ¿¼Ñ¡¡«
  499.      «Γ¡«ß¿Γѽ∞¡«  ßΓ᫬¿  αáºóÑαΓ¬¿  0,  Γᬠ ¬á¬  »α¿¼Ñ¡Ñ¡¿Ñ ñαπú«ú«
  500.      ¼ÑΓ«ñá ¼«ªÑΓ »α¿óÑßΓ¿ ¬ º¡áτ¿Γѽ∞¡δ¼ αáßσ«ªñÑ¡¿∩¼  αѺπ½∞ΓáΓ«ó ¡á
  501.      αẽ¿τ¡δσ  ¬«¼»∞εΓÑαáσ.  (é  »α¿¡µ¿»Ñ  »α¿¼Ñ¡Ñ¡¿Ñ  ñαπú¿σ ¼ÑΓ«ñ«ó
  502.      ó«º¼«ª¡«, «ñ¡á¬« óá¼ ¡Ñ«íσ«ñ¿¼« »«¼¡¿Γ∞, τΓ« »α¿ ¿σ ¿ß»«½∞º«óá¡¿¿
  503.      óδ ¼«ªÑΓÑ ¡Ñ ñ«í¿Γ∞ß∩ ß««ΓóÑΓßΓó¿∩ Σ«α¼ ¬παß«αá »α¿ αÑΦÑ¡¿¿ «ñ¡«⌐
  504.      ¿ Γ«⌐ ªÑ ºáñáτ¿ ¡á  αạδσ  ¬«¼»∞εΓÑαáσ).  Åα¿  πß½«ó¿¿,  τΓ«  óδ
  505.      íπñÑΓÑ αáßß¼áΓα¿óáΓ∞ ¿º¼Ñ¡Ñ¡¿Ñ Σ«α¼δ ¬παß«αá «Γ¡«ß¿Γѽ∞¡« ¡π½Ñó«⌐
  506.      ßΓ᫬¿  αáºóÑαΓ¬¿,  ¿º¼Ñ¡Ñ¡¿Ñ  Σ«α¼δ  ¬παß«αá  íπñÑΓ  óδ»«½¡∩Γ∞ß∩
  507.      á¡á½«ú¿τ¡« ¿º«íαáªÑ¡¡«¼π ¡á α¿ß.8-1.
  508.  
  509.           ä½∩ πßΓá¡«ó½Ñ¡¿∩ αẼÑαá ¬παß«αá óá¼ ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞
  510.      ROM-BIOS-»αÑαδóá¡¿Ñ 10ì,  Σπ¡¬µ¿ε 1, ¬«Γ«αá∩ πßΓá¡áó½¿óáÑΓ αẼÑα
  511.      ¬παß«αá.   ìáτὫ   ¬παß«αá   (¡áτá½∞¡á∩   ßΓα«¬á   αáºóÑαΓ¬¿)  -
  512.      ºá»«¼¿¡áÑΓß∩ ó αÑú¿ßΓαÑ Cì, á ¬«¡Ñµ (¬«¡Ñτ¡á∩ ßΓ᫬á αáºóÑαΓ¬¿) ó
  513.      αÑú¿ßΓαÑ CL.
  514.  
  515.  
  516.      ┌───────────────────────────────────────────────────────────────┐
  517.      │   æΓ᫬á αáºóÑαΓ¬¿                                            │
  518.      │                                                               │
  519.      │   7                                            ┌───┐          │
  520.      │                                                │   │          │
  521.      │   6                                     ┌───┐  │   │          │
  522.      │                                         │   │  │   │          │
  523.      │   5                              ┌───┐  │   │  │   │          │
  524.      │                                  │   │  │   │  │   │          │
  525.      │   4                       ┌───┐  │   │  │   │  │   │          │
  526.      │                           │   │  │   │  │   │  │   │          │
  527.      │   3                ┌───┐  │   │  │   │  │   │  │   │          │
  528.      │                    │   │  │   │  │   │  │   │  │   │          │
  529.      │   2         ┌───┐  │   │  │   │  │   │  │   │  │   │          │
  530.      │             │   │  │   │  │   │  │   │  │   │  │   │          │
  531.      │   1  ┌───┐  │   │  │   │  │   │  │   │  │   │  │   │          │
  532.      │      │   │  │   │  │   │  │   │  │   │  │   │  │   │          │
  533.      │   0  │   │  │   │  │   │  │   │  │   │  │   │  │   │          │
  534.      │      └───┘  └───┘  └───┘  └───┘  └───┘  └───┘  └───┘          │
  535.      └───────────────────────────────────────────────────────────────┘
  536.         É¿ß. 8-1.  é«º¼«ª¡«ßΓ∞ ¿º¼Ñ¡Ñ¡¿∩ Σ«α¼δ ¬παß«αá ó
  537.                    µóÑΓ¡«¼ αѪ¿¼Ñ.
  538.  
  539.  
  540.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  541. â½áóá VIII                                                    -- 10 --
  542.  
  543.           öπ¡¬µ¿∩ size_cursor(),  »αÑñßΓáó½Ñ¡¡á∩  ¡¿ªÑ,  πßΓá¡áó½¿óáÑΓ
  544.      αẼÑα ¬παß«αá.
  545.  
  546.           /* ôßΓá¡«ó½Ñ¡¿Ñ αẼÑαá ¬παß«αá */
  547.      void size_cursor(start,end)
  548.      char start,end; /* ¡áτá½∞¡á∩ ¿ ¬«¡Ñτ¡á∩ ßΓ᫬¿ αáºóÑαΓ¬¿ */
  549.      {
  550.           union REGS r;
  551.  
  552.           r.h.ah = 1; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
  553.           r.h.ch = start;
  554.           r.h.cl = end;
  555.           int86(0x10,&r,&r);
  556.      }
  557.  
  558.           Åα¿ ¿ß»«½∞º«óá¡¿¿  Σπ¡¬µ¿¿  size_cursor()  π¬áª¿ΓÑ  ªÑ½áѼδÑ
  559.      ¡áτá½∞¡πε  ¿  ¬«¡Ñτ¡πε  ßΓ᫬¿  αáºóÑαΓ¬¿,  «»αÑñѽ∩εΘ¿Ñ   αẼÑα
  560.      ¬παß«αá.  ìá»α¿¼Ñα,  ß½ÑñπεΘá∩  ¬«¡ßΓαπ¬µ¿∩  »«ºó«½∩ÑΓ πßΓá¡«ó¿Γ∞
  561.      óδß«Γπ ¬παß«αá ó Γα¿ ßΓ᫬¿ αáºóÑαΓ¬¿:
  562.  
  563.                size_cursor(0,2);
  564.  
  565.           ö«α¼á ¬παß«αá ¼«ªÑΓ íδΓ∞  ¿º¼Ñ¡Ñ¡á  ½¿í«  «τÑαÑñ¡δ¼  ó맮ó«¼
  566.      Σπ¡¬µ¿¿ size_cursor(), ½¿í« ¿º¼Ñ¡Ñ¡¿Ñ¼ ó¿ñÑ«αѪ¿¼á.
  567.  
  568.           êß»«½∞º«óá¡¿Ñ ¬παß«α«ó  αẽ¿τ¡«⌐  Σ«α¼δ »«ºó«½∩ÑΓ ¡Ñ Γ«½∞¬«
  569.      »«½¡«ßΓ∞ε  πñ«ó½ÑΓó«α¿Γ∞  óáΦ¿  φßΓÑΓ¿τÑ߬¿Ñ  ΓαÑí«óá¡¿∩,  ¡«   ¿
  570.      »«óδß¿Γ   ¡áú½∩ñ¡«ßΓ∞  »α«úαá¼¼δ.  ê¼Ñ⌐ΓÑ  ó  ó¿ñπ,  τΓ«  í«½∞Φ«⌐
  571.      ¼ÑαµáεΘ¿⌐ ¬παß«α óδºδóáÑΓ π »«½∞º«óáΓѽÑ⌐ αáºñαáªÑ¡¿Ñ.
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  601. â½áóá VIII                                                    -- 11 --
  602.  
  603.  
  604.                            æèÉÄïïêìâ ùÇæÆê ¥èÉÇìÇ
  605.      -----------------------------------------------------------------
  606.  
  607.           äóÑ   ß«ó¼ÑßΓ¡«  ¿ß»«½∞ºπѼδÑ   Σπ¡¬µ¿¿  ROM-BIOS-»αÑαδóá¡¿∩
  608.      »«ºó«½∩εΓ «ßπΘÑßΓó½∩Γ∞ ß¬α«½½¿¡ú ó»ÑαÑñ ¿ ¡áºáñ τáßΓ¿ φ¬αá¡á. ¥Γ¿
  609.      Σπ¡¬µ¿¿  í뫨  ó¬½ετÑ¡δ  ó  ROM-BIOS  ñ½∩  »«ññÑ᪬¿ ¼¡«ú««¬«¡¡δσ
  610.      ¿¡ΓÑαΣÑ⌐ß«ó. èᬠóδ º¡áÑΓÑ,  ¬«úñá ¬παß«α αáß»«½«ªÑ¡  ó  ñóáñµáΓ∞
  611.      »∩Γ«⌐  ßΓα«¬Ñ  ¿  óδ  ¡áªá½¿  ¬½áó¿Φπ  <ééÄä>,  Γ«  áóΓ«¼áΓ¿τÑ߬¿
  612.      «ßπΘÑßΓó½∩ÑΓß∩ »ÑαѼÑΘÑ¡¿Ñ ΓѬßΓá ¡á «ñ¡π ßΓ᫬π  óóÑασ  ß  µÑ½∞ε
  613.      «Γ«íαáªÑ¡¿∩ ¡«ó«⌐ ßΓ᫬¿ ó ¡¿ª¡Ñ⌐ τáßΓ¿ φ¬αá¡á.  Æ«τ¡« ΓᬠªÑ,  ß
  614.      »«¼«Θ∞ε Σπ¡¬µ¿⌐ 6 ¿ 7 »αÑαδóá¡¿∩ ROM-BIOS 10ì,  ¼«ª¡« «ßπΘÑßΓó¿Γ∞
  615.      ß¬α«½½¿¡ú ½¿Φ∞   τáßΓ¿  φ¬αá¡á.  öπ¡¬µ¿∩  6  »«ºó«½∩ÑΓ  óδ»«½¡¿Γ∞
  616.      ß¬α«½½¿¡ú ó «¬¡Ñ ó¡¿º (ó»ÑαÑñ), á Σπ¡¬µ¿∩ 7 - óóÑασ (¡áºáñ).
  617.  
  618.           ÄíÑ Σπ¡¬µ¿¿ »α¿ ó맮óÑ  ¿ß»«½∞ºπεΓ  ¿¡Σ«α¼áµ¿ε,  σαá¡¿¼πε  ó
  619.      «»αÑñѽѡ¡δσ  αÑú¿ßΓαáσ.  çá¡Ñß¿ΓÑ  ¬«½¿τÑßΓó« ßΓ᫬,  ¡á ¬«Γ«αδÑ
  620.      íπñÑΓ "»α«¬απτ¿óáΓ∞ß∩" ΓѬßΓ (¼«Θ¡«ßΓ∞ ß¬α«½½¿¡úá) ó  αÑú¿ßΓα AL.
  621.      ì«¼Ñα óÑασ¡Ñ⌐ ½Ñó«⌐ ßΓ᫬¿,  «úαá¡¿τ¿óáεΘÑ⌐ óáΦÑ "«¬¡«", ºá¡Ñß¿ΓÑ
  622.      ó αÑú¿ßΓα CH,  á ¡«¼Ñα óÑασ¡Ñú« ½Ñó«ú« ßΓ«½íµá -  ó  αÑú¿ßΓα  CL.
  623.      ì«¼Ñα ¡¿ª¡Ñ⌐ ½Ñó«⌐ ßΓ᫬¿ ºá¡Ñß¿ΓÑ ó αÑú¿ßΓα DH,  á ¡«¼Ñα ¡¿ª¡Ñú«
  624.      »αáó«ú« ßΓ«½íµá - ó αÑú¿ßΓα DL.  é ¬«¡µÑ ºá»«¼¡¿ΓÑ ó αÑú¿ßΓαÑ  BH
  625.      áΓα¿íπΓδ αѪ¿¼á «Γ«íαáªÑ¡¿∩, ¬«Γ«αδÑ íπñπΓ «»αÑñѽ∩Γ∞, ¬á¬ ¿¼Ñ¡¡«
  626.      íπñπΓ «Γ«íαáªáΓ∞ß∩ ó »α«µÑßßÑ ß¬α«½½¿¡úá  ¡«óδÑ  ßΓ᫬¿.  öπ¡¬µ¿∩
  627.      scroll_window() »αÑñßΓáó½Ñ¡á ¡¿ªÑ.
  628.  
  629.           /* æ¬α«½½¿¡ú ó «¬¡Ñ ó»ÑαÑñ ¿ ¡áºáñ */
  630.  
  631.      void scroll_window(startx,starty,endx,endy,lines,direct)
  632.      char startx,starty;/* óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ */
  633.      char endx,endy;    /* ¡¿ª¡¿⌐ »αáóδ⌐ πú«½ */
  634.      char lines;        /* τ¿ß½« ßΓ᫬ »α«¬απΓ¬¿ */
  635.      char direct;       /* ó»ÑαÑñ ¿½¿ ¡áºáñ */
  636.      {
  637.           union REGS r;
  638.  
  639.           if ( direct == UP ) r.h.ah = 6; /* ß¬α«½½¿¡ú ó»ÑαÑñ */
  640.           else r.h.ah = 7; /* ß¬α«½½¿¡ú ó¡¿º (¡áºáñ) */
  641.           r.h.al = lines;
  642.           r.h.ch = starty;
  643.           r.h.cl = startx;
  644.           r.h.dh = endy;
  645.           r.h.dl = endx;
  646.           r.h.bh = 0;     /* αѪ¿¼ «Γ«íαáªÑ¡¿∩ */
  647.           int86(0x10,&r,&r);
  648.      }
  649.  
  650.           éδ ¼«ªÑΓÑ  «»αÑñѽ¿Γ∞  ¼á¬α«ß  UP  ¬á¬   ¿¼ÑεΘ¿⌐   ¡Ñ¬«Γ«α«Ñ
  651.      º¡áτÑ¡¿Ñ.  éδ  ΓᬪѠ ¼«ªÑΓÑ  «»αÑñѽ¿Γ∞  ¼á¬α«ß  DOWN,  º¡áτÑ¡¿Ñ
  652.      ¬«Γ«α«ú«  íπñÑΓ  «Γ½¿τ¡«  «Γ  UP,  á   ºáΓѼ   ¿ß»«½∞º«óáΓ∞   »α¿
  653.      ¡Ñ«íσ«ñ¿¼«ßΓ¿     «ßπΘÑßΓó½Ñ¡¿∩    ß¬α«½½¿¡úá    ó    «¬¡Ñ    φΓ¿
  654.      ¼á¬α««»αÑñѽѡ¿∩.   Æá¬«⌐   »α¿Ñ¼   º¡áτ¿Γѽ∞¡«   π»α«ßΓ¿Γ   óáΦπ
  655.      »α«úαá¼¼π.   öπ¡¬µ¿∩   scroll_window()  »α¿ßóá¿óáÑΓ  αÑú¿ßΓαπ  éì
  656.      º¡áτÑ¡¿Ñ 0 ñ½∩ ß«σαá¡Ñ¡¿∩ »πßΓδσ ßΓ᫬, «ñ¡á¬« óδ ¼«ªÑΓÑ ¿º¼Ñ¡¿Γ∞
  657.      φΓ« º¡áτÑ¡¿Ñ »« ßó«Ñ¼π πß¼«ΓαÑ¡¿ε.
  658.  
  659.  
  660.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  661. â½áóá VIII                                                    -- 12 --
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  721. â½áóá VIII                                                    -- 13 --
  722.  
  723.  
  724.                    ÅÉÄæÆàëÿǃ äàîÄìæÆÉÇûêÄììǃ ÅÉÄâÉÇîîÇ
  725.      -----------------------------------------------------------------
  726.  
  727.           ¥Γá »α«úαἼᠻ«ºó«½∩ÑΓ »α«ñѼ«¡ßΓα¿α«óáΓ∞  αáí«Γπ  Σπ¡¬µ¿⌐,
  728.      αáßß¼«ΓαÑ¡¡δσ  ó ñá¡¡«⌐ ú½áóÑ ñ« ¡áßΓ«∩ΘÑú« ¼«¼Ñ¡Γá.  ¥Γ¿ Σπ¡¬µ¿¿
  729.      »«ºó«½∩εΓ ¿º¼Ñ¡¿Γ∞ Σ«α¼π ¬παß«αá,  óδñáΓ∞ ß««íΘÑ¡¿Ñ  ó  µóÑΓÑ,  á
  730.      ΓᬪѠ¿ß»«½∞º«óáΓ∞ ß¬α«½½¿¡ú τáßΓ¿ φ¬αá¡á.  ÉѺπ½∞ΓáΓ αáí«Γδ φΓ«⌐
  731.      »α«úαá¼¼δ »αÑñßΓáó½Ñ¡ ¡á α¿ß.8-2.
  732.  
  733.  
  734.      ┌───────────────────────────────────────────────────────────────┐
  735.      │                                                               │
  736.      │   a)     ¥Γ« - ΓÑßΓ                                           │
  737.      │     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    │
  738.      │     bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb    │
  739.      │     cccccccccccccccccccccccccccccccccccccccccccccccccccccc    │
  740.      │     dddddddddddddddddddddddddddddddddddddddddddddddddddddd    │
  741.      │     eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee    │
  742.      │     ffffffffffffffffffffffffffffffffffffffffffffffffffffff    │
  743.      │     gggggggggggggggggggggggggggggggggggggggggggggggggggggg    │
  744.      │     hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh    │
  745.      │     iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii    │
  746.      │     jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj    │
  747.      │     kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk    │
  748.      │     llllllllllllllllllllllllllllllllllllllllllllllllllllll    │
  749.      │     mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm    │
  750.      │     nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn    │
  751.      │     oooooooooooooooooooooooooooooooooooooooooooooooooooooo    │
  752.      │     pppppppppppppppppppppppppppppppppppppppppppppppppppppp    │
  753.      │     qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq    │
  754.      │     rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr    │
  755.      │     ssssssssssssssssssssssssssssssssssssssssssssssssssssss    │
  756.      │     tttttttttttttttttttttttttttttttttttttttttttttttttttttt    │
  757.      │     uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu    │
  758.      │     vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv    │
  759.      │                                                               │
  760.      │     í) ¥Γ« - ΓÑßΓ.                                            │
  761.      │     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    │
  762.      │     bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb    │
  763.      │     cccccccccccccccccccccccccccccccccccccccccccccccccccccc    │
  764.      │     dddddddddddddddddddddddddddddddddddddddddddddddddddddd    │
  765.      │     eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee    │
  766.      │     ffffffffffffffffffffffffffffffffffffffffffffffffffffff    │
  767.      │     gggggggggggggggggggggggggggggggggggggggggggggggggggggg    │
  768.      │     hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh    │
  769.      │     iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii    │
  770.      │     jjjjjjjjjj                     jjjjjjjjjjjjjjjjjjjjjjj    │
  771.      │     kkkkkkkkkk                     kkkkkkkkkkkkkkkkkkkkkkk    │
  772.      │     llllllllll                     lllllllllllllllllllllll    │
  773.      │     mmmmmmmmmmjjjjjjjjjjjjjjjjjjjjjmmmmmmmmmmmmmmmmmmmmmmm    │
  774.      │     nnnnnnnnnnkkkkkkkkkkkkkkkkkkkkknnnnnnnnnnnnnnnnnnnnnnn    │
  775.      │     oooooooooolllllllllllllllllllllooooooooooooooooooooooo    │
  776.      │     pppppppppppppppppppppppppppppppppppppppppppppppppppppp    │
  777.      │     qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq    │
  778.  
  779.  
  780.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  781. â½áóá VIII                                                    -- 14 --
  782.  
  783.  
  784.      │     rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr    │
  785.      │     ssssssssssssssssssssssssssssssssssssssssssssssssssssss    │
  786.      │     tttttttttttttttttttttttttttttttttttttttttttttttttttttt    │
  787.      │     uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu    │
  788.      │     vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv    │
  789.      │                                                               │
  790.      └───────────────────────────────────────────────────────────────┘
  791.  
  792.       É¿ß. 8-2 ÉѺπ½∞ΓáΓ αáí«Γδ »α«úαá¼¼δ.
  793.  
  794.  
  795.           /* äѼ«¡ßΓαᵿ«¡¡á∩ »α«úαἼᠻÑτáΓ¿ ΓѬßΓá ó µóÑΓÑ,
  796.              ¿º¼Ñ¡Ñ¡¿∩ Σ«α¼δ ¬παß«αá ¿ ß¬α«½½¿¡úá ó «¬¡Ñ
  797.           */
  798.  
  799.             #include "dos.h"
  800.  
  801.             #define BLUE         1
  802.             #define GREEN        2
  803.             #define RED          4
  804.             #define INTENSE      8
  805.             #define BLUE_BACK   16
  806.             #define GREEN_BACK  32
  807.             #define RED_BACK    64
  808.             #define BLINK      128
  809.  
  810.                #define UP        0
  811.             #define DOWN         1
  812.  
  813.             void mode(),color_puts(),palette(), read_cursor_xy();
  814.             void goto_xy(),size_cursor(),scroll_window();
  815.  
  816.                main()
  817.                {
  818.                 int i,j;
  819.  
  820.              mode(3); /* αѪ¿¼ ΓѬßΓ«óδ⌐, µóÑΓ¡«⌐ */
  821.  
  822.                 size_cursor(0,3);
  823.                 goto_xy(0,0);
  824.                 color_puts(" ¥Γ« - ΓÑßΓ\n",BLUE |RED | INTENSE);
  825.                 for ( i=0;i<22;i++) {
  826.                     for ( j=0;j<79;j++)
  827.                     printf("%c",i+'a');
  828.                     printf("\n");
  829.                }
  830.                getche();
  831.                scroll_window(10,10,50,15,3,DOWN);
  832.                getche();
  833.      }
  834.           /* ÅÑτáΓ∞ ßΓ᫬¿ ó µóÑΓÑ */
  835.  
  836.                void color_puts(s,color)
  837.                char *s;      /* ßΓ᫬á */
  838.  
  839.  
  840.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  841. â½áóá VIII                                                    -- 15 --
  842.  
  843.  
  844.                char color;   /* µóÑΓ ßΓ᫬¿ */
  845.                {
  846.                     union REGS r;
  847.                     char x,y;
  848.  
  849.                     read_cursor_xy(&x,&y); /* τΓÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿
  850.                                               ¬παß«αá   */
  851.                     while (*s) {
  852.                      if (*s == '\n') { /* «íαáí«Γ¬á ß¿¼ó«½á ¡«ó«⌐
  853.                                           ßΓ᫬¿ */
  854.                      printf("\n");
  855.                      s++;
  856.                      x = 0; y++;  /* »ÑαÑσ«ñ ¬ ¡«ó«⌐ ßΓα«¬Ñ */
  857.                      continue;
  858.                     }
  859.  
  860.                     r.h.ah = 9;/* «Γ«íαáªÑ¡¿Ñ ß¿¼ó«½«ó »« áΓα¿íπΓá¼ */
  861.                     r.h.al = *s++; /* óδñáóáѼδ⌐ ß¿¼ó«½ */
  862.                     r.h.bl = color;  /* áΓα¿íπΓ µóÑΓá */
  863.                     r.h.bh = 0; /*     ó¿ñÑ«ßΓαá¡¿µá 0 */
  864.                     r.x.cx = 1; /* óδñáτá ß¿¼ó«½á ºá «ñ¿¡ Γá¬Γ */
  865.                     int86(0x10,&r,&r);
  866.                     x++;
  867.                     goto_xy(x,y);      /* »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá */
  868.                     }
  869.                }
  870.           /* τΓÑ¡¿Ñ ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá */
  871.                void read_cursor_xy(x,y)
  872.                char *x,*y;
  873.                {
  874.                 union REGS r;
  875.  
  876.                 r.h.ah = 3; /* τΓÑ¡¿Ñ »«º¿µ¿¿ ¬παß«αá */
  877.                 r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá 0 */
  878.                 int86(0x10,&r,&r);
  879.                 *y = r.h.dl;
  880.                 *x = r.h.dh;
  881.                }
  882.  
  883.           /* πßΓá¡«ó¬á »á½¿Γαδ */
  884.                void palette(pnum)
  885.                int pnum;
  886.                {
  887.                 union REGS r;
  888.  
  889.                 r.h.bh = 1;  /* ¬«ñ ñ½∩ úαáΣ¿τÑ߬«ú« αѪ¿¼á 4 */
  890.                 r.h.bl = pnum;
  891.                 r.h.ah = 11; /* Σπ¡¬µ¿∩ πßΓᡫ󬿠»á½¿Γαδ */
  892.                 int86(0x10,&r,&r);
  893.                }
  894.  
  895.           /* πßΓá¡«ó¬á ó¿ñÑ«αѪ¿¼á */
  896.                void mode(mode_code)
  897.                int mode_code;
  898.  
  899.  
  900.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  901. â½áóá VIII                                                    -- 16 --
  902.  
  903.  
  904.                {
  905.                 union REGS r;
  906.  
  907.                 r.h.al = mode_code;
  908.                 r.h.ah = 0;
  909.                 int86(0x10,&r,&r);
  910.                }
  911.  
  912.           /* »ÑαѼÑΘÑ¡¿Ñ ¬παß«αá ó »«º¿µ¿ε x,y */
  913.                void goto_xy(x,y)
  914.                int x,y;
  915.                {
  916.                 union REGS r;
  917.  
  918.                 r.h.ah = 2; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
  919.                 r.h.dl = x; /* ¬««αñ¿¡áΓδ ßΓ«½íµá */
  920.                 r.h.dh = y; /* ¬««αñ¿¡áΓδ ßΓ᫬¿ */
  921.                 r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá 0 */
  922.                 int86(0x10,&r,&r);
  923.                }
  924.  
  925.           /* πßΓá¡«ó¬á αẼÑαá (Σ«α¼δ) ¬παß«αá */
  926.                void size_cursor(start,end)
  927.                char start,end; /* ¡áτá½∞¡á∩ ¿ ¬«¡Ñτ¡á∩ ßΓ᫬¿
  928.                          αáºóÑαΓ¬¿ */
  929.                {
  930.                 union REGS r;
  931.  
  932.                 r.h.ah = 1; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
  933.                 r.h.ch = start;
  934.                 r.h.cl = end;
  935.                 int86(0x10,&r,&r);
  936.                }
  937.  
  938.           /* ß¬α«½½¿¡ú ó «¬¡Ñ ó»ÑαÑñ ¿ ¡áºáñ */
  939.          void scroll_window(startx,starty,endx,endy,lines,direct)
  940.          char startx,starty; /* óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ */
  941.          char endx,endy;     /* ¡¿ª¡¿⌐ »αáóδ⌐ πú«½ */
  942.          char lines;         /* ¼«Θ¡«ßΓ∞ ß¬α«½½¿¡úá */
  943.          char direct;        /* óóÑασ ¿½¿ ó¡¿º */
  944.           {
  945.            union REGS r;
  946.  
  947.            if ( direct == UP ) r.h.ah = 6; /* ß¬α«½½¿¡ú óóÑασ */
  948.             else r.h.ah = 7; /* ß¬α«½½¿¡ú ó¡¿º */
  949.  
  950.           r.h.al = lines;
  951.           r.h.ch = starty;
  952.           r.h.cl = startx;
  953.           r.h.dh = endy;
  954.           r.h.dl = endx;
  955.           r.h.bh = 0; /* αѪ¿¼ «Γ«íαáªÑ¡¿∩ */
  956.           int86(0x10,&r,&r);
  957.           }
  958.  
  959.  
  960.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  961. â½áóá VIII                                                    -- 17 --
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1021. â½áóá VIII                                                    -- 18 --
  1022.  
  1023.  
  1024.                   æÄòÉÇìàìêà èÄÅêê ¥èÉÇìÇ é äêæèÄéÄî öÇëïà
  1025.      -----------------------------------------------------------------
  1026.  
  1027.           ì¿ ó  DOS,  ¡¿ ó OS/2 ¡ÑΓ πΓ¿½¿Γ,  ßσ«ñ¡δσ ß πΓ¿½¿Γ«⌐ »ÑτáΓ¿
  1028.      ¬«»¿¿ φ¬αá¡á,  »«ºó«½∩εΘÑ⌐ ß«σαá¡∩Γ∞  ΓѬπΘÑÑ  ß«ñÑন¼«Ñ  φ¬αá¡á
  1029.      ñ¿ß»½Ñ∩ ó  ñ¿ß¬«ó«¼  Σá⌐½Ñ.  é φΓ«¼ αáºñѽѠóδ ¡á⌐ñÑΓÑ »«∩ߡѡ¿Ñ,
  1030.      ¬á¬ ¼«ª¡« ß«ºñáΓ∞ »α«úαá¼¼π,  ¬«Γ«αá∩  óδ»«½¡∩½á  íδ  ¿¼Ñ¡¡«  φΓπ
  1031.      Σπ¡¬µ¿ε.
  1032.  
  1033.           ¥Γá »α«úαἼᠿ߻«½∞ºπÑΓ ROM-BIOS-»αÑαδóá¡¿Ñ 10ì,  Σπ¡¬µ¿ε 8
  1034.      ñ½∩ τΓÑ¡¿∩  ß¿¼ó«½á ¿º  ΓѬπΘÑ⌐ »«º¿µ¿¿ ¬παß«αá,  »«ß½Ñ τÑú« φΓ«Γ
  1035.      ß¿¼ó«½ ºá»¿ßδóáÑΓß∩ ó Σá⌐½ ¡á ñ¿ß¬Ñ.  èᬠ¿ ó »αÑñδñπΘѼ αáºñѽÑ,
  1036.      óδ «»∩Γ∞ óßΓαÑΓ¿ΓÑß∞ ß Σπ¡¬µ¿Ñ⌐ goto_xy(),  ¬«Γ«αá∩ ó φΓ«¼ ß½πτáÑ
  1037.      ¿ß»«½∞ºπÑΓß∩  ñ½∩  »ÑαѼÑΘÑ¡¿∩  ¬παß«αá  »«ß½Ññ«óáΓѽ∞¡«  »« óßѼ
  1038.      ßΓα«¬á¼ φ¬αá¡á,  ¡áτ¿¡á∩ ß ½Ñó«ú« óÑασ¡Ñú« πú½á φ¬αá¡á ñ« »αáó«ú«
  1039.      ¡¿ª¡Ñú« πú½á.
  1040.  
  1041.           ê¼∩ Σá⌐½á,   ó   ¬«Γ«α«¼   íπñÑΓ   σαá¡¿Γ∞ß∩  ¬«»¿∩  φ¬αá¡á,
  1042.      π¬áºδóáÑΓ∩ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá »α«úαá¼¼δ.  àß½¿,  ¬ »α¿¼Ñαπ,  óδ
  1043.      ¡áº«óÑΓÑ  ßó«ε »α«úαá¼¼π,  ¬«»¿απεΘπε φ¬αá¡ ¡á ñ¿ß¬,  screen,  Γ«
  1044.      »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ ¬«¼á¡ñ¡á∩ ßΓα«¬á »α¿óÑñÑΓ  ¬  ß«ºñá¡¿ε  ¬«»¿¿
  1045.      φ¬αá¡á ó Σá⌐½Ñ ß ¿¼Ñ¡Ñ¼ scr.sav:
  1046.  
  1047.      C> screen scr.sav
  1048.  
  1049.           Ç ó«Γ ¿ßσ«ñ¡δ⌐ ΓѬßΓ ßἫ⌐ »α«úαá¼¼δ ¬«»¿α«óá¡¿∩:
  1050.  
  1051.                /* ¥Γá »α«úαἼᠬ«»¿απÑΓ ß«ñÑন¼«Ñ φ¬αá¡á óáΦÑú«
  1052.                   ñ¿ß»½Ñ∩ ó Σá⌐½, ¿¼∩ ¬«Γ«α«ú« π¬áºá¡« ó ¬«¼á¡ñ¡«⌐
  1053.                   ßΓ᫬Ñ
  1054.                */
  1055.  
  1056.           #include "dos.h"
  1057.           #include "stdio.h"
  1058.  
  1059.           void save_screen(),goto_xy();
  1060.  
  1061.           main(argc,argv)
  1062.           int argc;
  1063.           char *argv[];
  1064.           {
  1065.             if ( argc != 2 ) {
  1066.                printf(" ¿ß»«½∞ºπ⌐ΓÑ Σ«α¼áΓ : screen <¿¼∩ Σá⌐½á>");
  1067.                exit(1);
  1068.             }
  1069.             save_screen(argv[1]);
  1070.           }
  1071.  
  1072.           /* ß«σαá¡Ñ¡¿Ñ ß«ñÑন¼«ú« φ¬αá¡á ó ñ¿ß¬«ó«¼ Σá⌐½Ñ */
  1073.                void save_screen(fname)
  1074.                char *fname;
  1075.           {
  1076.            FILE *fp;
  1077.            union REGS r;
  1078.  
  1079.  
  1080.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1081. â½áóá VIII                                                    -- 19 --
  1082.  
  1083.  
  1084.            register char x,y;
  1085.  
  1086.            if ( !( fp=fopen(fname,"w"))) {
  1087.                printf(" öá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬αδΓ ");
  1088.                exit(1);
  1089.            }
  1090.  
  1091.            for (y=0;y<25;y++)
  1092.                for (x=0;x<80;x++) {
  1093.                goto_xy(x,y);
  1094.                r.h.ah = 8; /* τΓÑ¡¿Ñ ß¿¼ó«½á */
  1095.                r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá */
  1096.                int86(0x10,&r,&r);
  1097.                putc(r.h.al,fp); /* óδñáτá (»ÑτáΓ∞) ß¿¼ó«½á */
  1098.            }
  1099.           fclose(fp);
  1100.           }
  1101.  
  1102.           /* ÅÑαѼÑΘÑ¡¿Ñ ¬παß«αá ó »«º¿µ¿ε (x,y) */
  1103.           void goto_xy(x,y)
  1104.           int x,y;
  1105.           {
  1106.             union REGS r;
  1107.  
  1108.             r.h.ah = 2; /* Σπ¡¬µ¿∩ áñαÑßᵿ¿ ¬παß«αá */
  1109.             r.h.dl = x; /* ¬««αñ¿¡áΓá ßΓ«½íµá */
  1110.             r.h.dh = y; /* ¬««αñ¿¡áΓá ßΓ᫬¿ */
  1111.             r.h.bh = 0; /* ó¿ñÑ«ßΓαá¡¿µá */
  1112.             int86(0x10,&r,&r);
  1113.           }
  1114.  
  1115.           æ«ºñáóáѼδ⌐ Σá⌐½  »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßΓá¡ñáαΓ¡δ⌐ ASCII Σá⌐½,
  1116.      ¬«Γ«αδ⌐  ¼«ªÑΓ  íδΓ∞  «ΓαÑñá¬Γ¿α«óá¡  ¿  αáß»ÑτáΓá¡  ¬á¬  «íδτ¡δ⌐
  1117.      ΓѬßΓ«óδ⌐  Σá⌐½.  Åα«úαἼᠠ»«ºó«½∩ÑΓ  ºá»¿ßδóáΓ∞  ½¿Φ∞ ß¿¼ó«½δ,
  1118.      «Γ«íαáªÑ¡¡δÑ ¡á φ¬αá¡Ñ, ¡« ¡Ñ »«ºó«½∩ÑΓ ß«σαá¡¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ
  1119.      áΓα¿íπΓδ  «Γ«íαáªÑ¡¿∩  ß¿¼ó«½«ó.  Äñ¡á¬«  ñ«»«½¡¿Γ∞ »α«úαá¼¼π ñ½∩
  1120.      Γ«ú«, τΓ«íδ «¡á ºá»¿ßδóá½á ¿ áΓα¿íπΓδ ß¿¼ó«½«ó ¡Ñß½«ª¡«, ¿ óδ »α¿
  1121.      ªÑ½á¡¿¿ ¼«ªÑΓÑ φΓ« ßñѽáΓ∞ ßἫßΓ«∩Γѽ∞¡«.
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1141. â½áóá VIII                                                    -- 20 --
  1142.  
  1143.  
  1144.                            Ç ÆàÅàÉ£ äÄüÇéêî çéôè.
  1145.      -----------------------------------------------------------------
  1146.  
  1147.           êß»«½∞º«óá¡¿Ñ ß«   ó¬πß«¼   ºóπ¬á    º¡áτ¿Γѽ∞¡«    »«óδΦáÑΓ
  1148.      »α¿ó½Ñ¬áΓѽ∞¡«ßΓ∞ »α«úαá¼¼. çóπ¬ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ó Φ¿α«¬«¼
  1149.      ß»Ñ¬ΓαÑ «Γ Γ«¡Ñ¡∞¬«ú« "»¿ß¬á" ¼áΦ¿¡δ  ñ«  ¿ß»«½¡Ñ¡¿∩  ¼πºδ¬¿  ¿½¿
  1150.      αẽ¿τ¡δσ  ß»Ñµ¿á½∞¡δσ  φΣΣÑ¬Γ«ó.  é φΓ«¼ »áαáúαáΣÑ óδ ¡áπτ¿ΓÑß∞,
  1151.      ¬á¬ ¼«ª¡« π»αáó½∩Γ∞ óδß«Γ«⌐ ¿  »α«ñ«½ª¿Γѽ∞¡«ßΓ∞ε  ºóπτá¡¿∩  ¡«Γ,
  1152.      úÑ¡Ñα¿απѼδσ ñ¿¡á¼¿¬«¼ ¬«¼»∞εΓÑαá.  îδ ΓᬪѠ»α«ñѼ«¡ßΓα¿απѼ óá¼
  1153.      ¡Ñ¬«Γ«αδÑ ¡á¿í«½ÑÑ ¿¡ΓÑαÑß¡δÑ ºóπ¬«óδÑ φΣΣѬΓδ.
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1201. â½áóá VIII                                                    -- 21 --
  1202.  
  1203.  
  1204.           Åα«úαá¼¼¿απѼδ⌐ Γá⌐¼Ñα 8253.
  1205.           -----------------------------
  1206.  
  1207.           âÑ¡Ñαᵿ∩ ºóπ¬«ó  ó  ¬«¼»∞εΓÑαÑ  PC  óδ»«½¡∩ÑΓß∩  ß  »«¼«Θ∞ε
  1208.      »α«úαá¼¼¿απѼ«ú« Γá⌐¼Ñαá 8253, ¬«Γ«αδ⌐ »α¿¼Ñ¡∩ÑΓß∩ ñ½∩ π»αáó½Ñ¡¿∩
  1209.      ¬«½Ñíá¡¿∩¼¿   ñ¿¡á¼¿¬á.    ô»αáó½Ñ¡¿Ñ     ¬«½Ñíá¡¿∩¼¿    ñ¿¡á¼¿¬á
  1210.      «»αÑñѽ∩ÑΓß∩  τáßëë⌐,  ¬«Γ«αá∩,  ó  ßó«ε «τÑαÑñ∞,  «»αÑñѽ∩ÑΓß∩
  1211.      ß«ñÑন¼δ¼  αẽ¿τ¡δσ   ó¡πΓαÑ¡¡¿σ   αÑú¿ßΓα«ó.   ç¡áτÑ¡¿∩   φΓ¿σ
  1212.      αÑú¿ßΓα«ó  πßΓá¡áó½¿óáεΓß∩ »α¿ ºá»¿ß¿ ó «»αÑñѽѡ¡δÑ »«αΓδ.  Å«αΓ
  1213.      66 ¿ß»«½∞ºπÑΓß∩ ñ½∩  ß»Ñµ¿Σ¿¬áµ¿¿  ßτÑΓτ¿¬á,  ¬«Γ«αδ⌐  ¿ß»«½∞ºπÑΓ
  1214.      Γá⌐¼Ñα  »α¿  «»αÑñѽѡ¿¿  ¿¡ΓÑαóá½á  ¬«½Ñíá¡¿⌐  ñ¿¡á¼¿¬á.  Æá⌐¼Ñα
  1215.      αáí«ΓáÑΓ ó ßΓα«ú«¼ ß««ΓóÑΓßΓó¿¿ ß τáßëë⌐ ß¿ßΓѼ¡«ú«  Γá⌐¼Ñαá  ¿
  1216.      ß»Ñµ¿Σ¿µ¿α«óá¡¡δ¼   º¡áτÑ¡¿Ñ¼  ßτÑΓτ¿¬á,  «»αÑñѽ∩εΘ¿¼  ¬«½Ñíá¡¿∩
  1217.      ñ¿¡á¼¿¬á.  çáΓѼ,  »«ß½Ñ «í¡π½Ñ¡¿∩ ßτÑΓτ¿¬á »α«¿ßσ«ñ¿Γ  πßΓá¡«ó¬á
  1218.      ¡«ó«ú«   º¡áτÑ¡¿∩   ßτÑΓτ¿¬á,   ¿   óÑß∞   µ¿¬½  Σπ¡¬µ¿«¡¿α«óá¡¿∩
  1219.      »α«úαá¼¼¿απѼ«ú« Γá⌐¼Ñαá »«óΓ«α∩ÑΓß∩ ß¡áτá½á.  ç¡áτÑ¡¿Ñ  ßτÑΓτ¿¬á
  1220.      «»αÑñѽ∩ÑΓß∩ »« ß½ÑñπεΘÑ⌐ Σ«α¼π½Ñ:
  1221.  
  1222.           count = 1,193,180/ΓαÑíπѼá∩ τáßΓ«Γá
  1223.  
  1224.      úñÑ 1,193,180 ÑßΓ∞ Γá¬Γ«óá∩ τáßΓ«Γá ß¿ßΓѼ¡«ú« Γá⌐¼Ñαá.
  1225.  
  1226.           ÉÑú¿ßΓα-ßτÑΓτ¿¬ Γá⌐¼Ñαá  8253  πßΓá¡áó½¿óáÑΓß∩  ó  ß½ÑñπεΘÑ⌐
  1227.      »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ (º¡áτÑ¡¿Ñ   ßτÑΓτ¿¬á   ºáñáÑΓß∩    ñóπσíá⌐Γ¡δ¼
  1228.      τ¿ß½«¼):
  1229.  
  1230.        1.  éδñáΓ∞ ó »«αΓ  67  º¡áτÑ¡¿Ñ  182  («º¡áτáεΘÑÑ,  τΓ«   íπñÑΓ
  1231.            πßΓá¡áó½¿óáΓ∞ß∩ ßτÑΓτ¿¬).
  1232.  
  1233.        2.  éδñáΓ∞ ó »«αΓ 66 ¼½áñΦ¿⌐ íá⌐Γ τ¿ß½á, «»αÑñѽ∩εΘÑú« º¡áτÑ¡¿Ñ
  1234.            ßτÑΓτ¿¬á.
  1235.  
  1236.        3.  éδñáΓ∞ ó »«αΓ 66 ßΓáαΦ¿⌐ íá⌐Γ τ¿ß½á, «»αÑñѽ∩εΘÑú« º¡áτÑ¡¿Ñ
  1237.            ßτÑΓτ¿¬á.
  1238.  
  1239.           ä¿¡á¼¿¬¿ í«½∞Φ¿¡ßΓóá  ¬«¼»∞εΓÑα«ó  ¬½áßßá  PC  ¡Ñ  »«ºó«½∩εΓ
  1240.      ó«ß»α«¿ºó«ñ¿Γ∞ »«½¡δ⌐ ß»Ñ¬Γα τáßΓ«Γ,  ó«ß»α¿¡¿¼áѼδσ τѽ«óÑτÑ߬¿¼
  1241.      ß½πσ«¼ («Γ  20  âµ  ñ«  18.000  âµ).  Äñ¡á¬«  ñ¿¡á¼¿¬   »«ºó«½∩ÑΓ
  1242.      ó«ß»α«¿ºó«ñ¿Γ∞  ¡«Γδ  ½πτΦÑ,  τѼ  ñ¿¡á¼¿¬¿  ñαπú¿σ ¬«¼»∞εΓÑα«ó ó
  1243.      »αÑñѽáσ 12000 âµ ¿ ñáªÑ óδΦÑ. é «ß¡«ó¡«¼ ªÑ ñ¿¡á¼¿¬ ¿ß»«½∞ºπÑΓß∩
  1244.      ó »αÑñѽáσ 100-5000 âµ.
  1245.  
  1246.           êΓá¬, Γá⌐¼Ñα   πßΓá¡«ó½Ñ¡.   Äñ¡á¬«  ñ¿¡á¼¿¬  ÑΘÑ  ¡Ñ  íπñÑΓ
  1247.      ó«ß»α«¿ºó«ñ¿Γ∞ ºóπ¬,  Γᬠ¬á¬ ¡Ñ  ó¬½ετÑ¡.  Æá⌐¼Ñα  8253  á¬Γ¿óÑ¡
  1248.      »«ßΓ«∩¡¡«,  á  ñ¿¡á¼¿¬  ΓαÑíπÑΓ ñ«»«½¡¿Γѽ∞¡«⌐ ¬«¼á¡ñδ ó¬½ετÑ¡¿∩.
  1249.      Ç¬Γ¿ó¿ºáµ¿∩  ñ¿¡á¼¿¬á  «ßπΘÑßΓó½∩ÑΓß∩  »πΓѼ  πßΓᡫ󬿠 º¡áτÑ¡¿⌐
  1250.      í¿Γ«ó  0  ¿ 1 αÑú¿ßΓαá »α«úαá¼¼¿απѼ«ú« »Ñα¿ΣÑα¿⌐¡«ú« ¿¡ΓÑαΣÑ⌐ßá,
  1251.      ºáñá¡¿Ñ  º¡áτÑ¡¿⌐  ¬«Γ«α«ú«  óδ»«½¡∩ÑΓß∩  τÑαѺ  »«αΓ   97.  àß½¿
  1252.      º¡áτÑ¡¿∩ φΓ¿σ ñóπσ í¿Γ«ó πßΓá¡«ó½Ñ¡δ (αáó¡δ 1), Γ« ñ¿¡á¼¿¬ ¿ºñáÑΓ
  1253.      ºóπ¬ τáßëë⌐,  πßΓá¡«ó½Ñ¡¡«⌐ ßτÑΓτ¿¬«¼ 8253.  àß½¿ º¡áτÑ¡¿∩ φΓ¿σ
  1254.      í¿Γ«ó αáó¡δ 0, Γ« ¡¿¬á¬«⌐ ºóπ¬ úÑ¡Ñα¿α«óáΓ∞ß∩ ¡Ñ íπñÑΓ. ÄßΓá½∞¡δÑ
  1255.      í¿Γδ  φΓ«ú«  íá⌐Γá  ¿ß»«½∞ºπεΓß∩  ñαπú¿¼¿  πßΓα«⌐ßΓóἿ,  »«φΓ«¼π
  1256.      ¿¡ΓÑα»αÑΓᵿ∩  º¡áτÑ¡¿∩ ½Ñóδσ í¿Γ«ó ¡Ñ ¼«ªÑΓ íδΓ∞ ¿º¼Ñ¡Ñ¡á. Æá¬¿¼
  1257.      «íαẫ¼, ñ½∩  πßΓᡫ󬿠 º¡áτÑ¡¿⌐   π»αáó½∩εΘ¿σ   ñ¿¡á¼¿¬«¼   í¿Γ
  1258.  
  1259.  
  1260.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1261. â½áóá VIII                                                    -- 22 --
  1262.  
  1263.  
  1264.      ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ñÑ⌐ßΓó¿⌐:
  1265.  
  1266.       1. Å«½πτ¿Γ∞ ΓѬπΘÑÑ º¡áτÑ¡¿Ñ αÑú¿ßΓαá ¿º »«αΓá 97.
  1267.       2. æαáó¡¿Γ∞ φΓ« º¡áτÑ¡¿Ñ ß 3 ¿½¿ πßΓá¡«ó¿Γ∞ αáó¡δ¼ 3.
  1268.       3. çỿßáΓ∞ αѺπ½∞ΓáΓ ó »«αΓ 97.
  1269.  
  1270.           ä½∩ Γ«ú«,  τΓ«íδ  ó䬽ετ¿Γ∞ ñ¿¡á¼¿¬,  ¡Ñ«íσ«ñ¿¼« »ÑαÑß½áΓ∞ ó
  1271.      »«αΓ º¡áτÑ¡¿Ñ 253.
  1272.  
  1273.           Åα«ßΓÑ⌐Φ¿¼ »α¿Ñ¼«¼,  »«ºó«½∩εΘ¿¼ τ¿ΓáΓ∞ ¿ »¿ßáΓ∞ íá⌐Γ ¿º ¿½¿
  1274.      ó  »«αΓ,  ó æ¿ ∩ó½∩ÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ ß««ΓóÑΓßΓóπεΘ¿σ Σπ¡¬µ¿⌐.  é
  1275.      Æπαí« C¿ - φΓ« Σπ¡¬µ¿¿ inportb() ¿ outportb().  é Microsoft C¿  -
  1276.      φΓ« Σπ¡¬µ¿¿ inp() ¿ outp(). Ä¡¿ ¿¼ÑεΓ ß½ÑñπεΘ¿⌐ «íΘ¿⌐ Σ«α¼áΓ:
  1277.  
  1278.                int inportb(int port);
  1279.                void outportb(int port, char value);
  1280.                int inp(unsigned port);
  1281.                int outp(unsigned port, int value);
  1282.  
  1283.           é  ñαπú¿σ  ¬«¼»¿½∩Γ«αáσ  æ¿  φΓ¿  Σπ¡¬µ¿¿  ¼«úπΓ  ¿¼ÑΓ∞ ¿¡δÑ
  1284.      ¡áºóá¡¿∩, ¡« «í∩ºáΓѽ∞¡« íπñπΓ »α¿ßπΓßΓó«óáΓ∞ ó óáΦÑ⌐ í¿í½¿«ΓѬÑ,
  1285.      Γᬠ¬á¬ ∩ó½∩εΓß∩ «ñ¡¿¼¿ ¿º íẫóδσ Σπ¡¬µ¿⌐ óÑαß¿⌐ æ¿  ñ½∩ Å¥éî. é
  1286.      »α«úαá¼¼áσ,  »α¿óÑñÑ¡¡δσ ó φΓ«¼  »áαáúαáΣÑ,  ¿ß»«½∞ºπεΓß∩ Σπ¡¬µ¿¿
  1287.      Æπαí« C¿.
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.  
  1301.  
  1302.  
  1303.  
  1304.  
  1305.  
  1306.  
  1307.  
  1308.  
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1321. â½áóá VIII                                                    -- 23 --
  1322.  
  1323.  
  1324.           Åα«ßΓÑ⌐Φ¿⌐ ß»«ß«í »α«óÑન ß½πσá.
  1325.           ---------------------------------
  1326.  
  1327.           éδ «í½áñáÑΓÑ  ó«º¼«ª¡«ßΓ∞ε  ßñѽáΓ∞  ¡Ñ߬«½∞¬«  úαπíδ⌐,   ¡«
  1328.      φΣΣÑ¬Γ¿ó¡δ⌐ ΓÑßΓ ß½πσá,  ¬«Γ«αδ⌐ ó ß«ßΓ«∩¡¿¿ «í¡áαπª¿Γ∞ ¡Ñ¬«Γ«αδÑ
  1329.      Γ¿»δ ñÑΣѬΓá ß½πσá.  èᬠóδ  αá¡ÑÑ  πº¡á½¿,  ñ¿¡á¼¿¬  í«½∞Φ¿¡ßΓóá
  1330.      ¬«¼»∞εΓÑα«ó ßÑα¿¿ PC ¡Ñ ó«ß»α«¿ºó«ñ¿Γ ºóπ¬¿ óδΦÑ 12000 âµ. Äñ¡á¬«
  1331.      α∩ñ ½εñÑ⌐,  π ¬«Γ«αδσ «Γ¼ÑτÑ¡δ  ¡Ñ¬«Γ«αδÑ  «Γ¬½«¡Ñ¡¿∩  ß½πσá,  ¡Ñ
  1332.      ¼«úπΓ πß½δΦáΓ∞ ºóπ¬ ñáªÑ Γᬫ⌐ τáßΓ«Γδ. öá¬Γ¿τÑ߬¿, ΓÑßΓ¿απ∩ ßó«⌐
  1333.      ß½πσ,  óδ  íπñÑΓÑ  ¡Ñ߬«½∞¬«  πñ¿ó½Ñ¡δ  ΓѼ,  ¡á߬«½∞¬«   óδß«¬¿¼
  1334.      «¬áªÑΓß∩ ºóπ¬ ß τáßëë⌐ 12000 âµ.  (ÅαÑñπ»αѪñÑ¡¿Ñ: ΓÑßΓ¿α«óá¡¿Ñ
  1335.      ß½πσá ß »«¼«Θ∞ε φΓ«ú« ΓÑßΓá ¼«ª¡« »α«¿ºó«ñ¿Γ∞  ½¿Φ∞  αáñ¿  ΦπΓ¬¿.
  1336.      Ä¡,   ÑßΓÑßΓóÑ¡¡«,   ¡Ñ   »«ºó«½∩ÑΓ  ñÑ⌐ßΓó¿Γѽ∞¡«  «µÑ¡¿Γ∞  ß½πσ
  1337.      ¿ß»δΓπѼ«ú«.  Å«φΓ«¼π,  Ñß½¿ óδ ºá¼ÑΓ¿½¿ π ßÑí∩ ñÑΣѬΓδ ß½πσá ¿½¿
  1338.      σ«Γ¿ΓÑ  ñÑ⌐ßΓó¿Γѽ∞¡«  »α«óÑα¿Γ∞  ßó«⌐  ß½πσ,  «íαáΓ¿ΓÑß∞ ½πτΦÑ ¬
  1339.      ßó«Ñ¼π óαáτπ).
  1340.  
  1341.           ä½∩ »«½πτÑ¡¿∩ ºóπ¬á ó ΓÑßΓÑ  ¿ß»«½∞ºπÑΓß∩  Σπ¡¬µ¿∩  sound(),
  1342.      ¬«Γ«αá∩  úÑ¡Ñα¿απÑΓ  ¡Ñ»α«ñ«½ª¿Γѽ∞¡«Ñ ºóπτ᡿Ѡ߻ѵ¿Σ¿µ¿α«óá¡¡«⌐
  1343.      ¡«Γδ. èᬠ»«¬áºá¡« ¡¿ªÑ, φΓá Σπ¡¬µ¿∩ ß«ñÑαª¿Γ óßÑ ¡Ñ«íσ«ñ¿¼«Ñ ñ½∩
  1344.      Γ«ú«,   τΓ«íδ   ßúÑ¡Ñα¿α«óáΓ∞   ½εí«⌐  ºóπ¬  ß  »«¼«Θ∞ε  ñ¿¡á¼¿¬á
  1345.      ¬«¼»∞εΓÑαá.
  1346.  
  1347.                /* çóπτá¡¿Ñ ñ¿¡á¼¿¬á ¡á ºáñá¡¡«⌐ τáßΓ«ΓÑ */
  1348.  
  1349.           void sound(freq)
  1350.           int freq;
  1351.           {
  1352.             unsigned i;
  1353.             union {
  1354.                long divisor;
  1355.                unsigned char c[2];
  1356.             } count;
  1357.  
  1358.             unsigned char p;
  1359.  
  1360.             count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡Ñíσ«ñ¿¼«ú«
  1361.                                              º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1362.             outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
  1363.                                  πßΓᡫ󬿠ßτÑΓτ¿¬á */
  1364.             outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
  1365.             outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
  1366.             p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
  1367.             outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ«ó 0 ¿ 1 */
  1368.  
  1369.             for (i=0;i<64000;++i); /* µ¿¬½ ºáñÑ᪬¿ */
  1370.  
  1371.             outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ »Ñαó«¡áτá½∞¡«ú« º¡áτÑ¡¿∩
  1372.                                Φáí½«¡á í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
  1373.           }
  1374.  
  1375.  
  1376.  
  1377.           çá¼ÑΓ¿¼, τΓ«  τáßΓ«Γá  ºóπτá¡¿∩  ¡«Γδ  ß»Ñµ¿Σ¿µ¿α«óá¡á   ¬á¬
  1378.  
  1379.  
  1380.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1381. â½áóá VIII                                                    -- 24 --
  1382.  
  1383.  
  1384.      áαúπ¼Ñ¡Γ Σπ¡¬µ¿¿. û¿¬½ ºáñÑ᪬¿ ¡Ñ«íσ«ñ¿¼, Γᬠ¬á¬ íѺ ¡Ñú« óδ íδ
  1385.      πß½δΦ὿  Γ«½∞¬«  ¼ú¡«óÑ¡¡δ⌐  "Θѽτ«¬"  ¿½¿  "»¿ß¬".  éδ   ¼«ªÑΓÑ
  1386.      ¿º¼Ñ¡¿Γ∞  τáßΓ«Γπ  αáí«Γδ  ß¿ßΓѼ¡«ú«  Γá⌐¼Ñαá  »α«µÑßß«αá óáΦÑú«
  1387.      ¬«¼»∞εΓÑαá.  Åα¿ φΓ«¼,  «Σ«α¼¿ó  Ñú«  ¬á¬  »áαá¼ÑΓα  Σπ¡¬µ¿¿,  óδ
  1388.      ñ«í∞ÑΓÑß∞  «»αÑñѽѡ¡«⌐  φΣΣÑ¬Γ¿ó¡«ßΓ¿  óáΦÑ⌐ »α«úαá¼¼δ.  öπ¡¬µ¿∩
  1389.      sound()  ¼«ªÑΓ  ¿ß»«½∞º«óáΓ∞ß∩   ¿   ñ½∩   »«½πτÑ¡¿∩   íá¡á½∞¡«ú«
  1390.      "»¿Θá¡¿∩" ¬«¼»∞εΓÑαá.
  1391.  
  1392.           ô»αáó½∩εΘá∩ Σπ¡¬µ¿∩  ñ½∩  »α«úαá¼¼δ ΓÑßΓá ß½πσá »αÑñßΓáó½Ñ¡á
  1393.      ¡¿ªÑ.
  1394.  
  1395.  
  1396.                /* Åα«ßΓÑ⌐Φ¿⌐ ΓÑßΓ ß½πσá */
  1397.  
  1398.           #include "dos.h"
  1399.  
  1400.           void sound();
  1401.  
  1402.           main()
  1403.           {
  1404.                int freq;
  1405.  
  1406.                do {
  1407.                  printf(" éóÑñ¿ΓÑ τáßΓ«Γπ ( 0 - óδσ«ñ ): ");
  1408.                  scanf("%d",&freq);
  1409.                  if ( freq ) sound(freq);
  1410.                } while(freq);
  1411.           }
  1412.  
  1413.  
  1414.  
  1415.           Åα¿ ¿ß»«½∞º«óá¡¿¿ ΓÑßΓá,  ó ó«ºαáßΓáεΘѼ »«α∩ñ¬Ñ  π¬áºδóá⌐ΓÑ
  1416.      τáßΓ«Γπ ºóπ¬á ñ« ΓÑσ »«α,  »«¬á ºóπ¬ ó«ß»α¿¡¿¼áÑΓß∩ ¡á ß½πσ.  ä½∩
  1417.      óδσ«ñá óóÑñ¿ΓÑ 0.
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1441. â½áóá VIII                                                    -- 25 --
  1442.  
  1443.  
  1444.           ê¼¿Γᵿ∩ ºóπ¬á ß¿αÑ¡δ ¿ óºóαδóδ.
  1445.           --------------------------------
  1446.  
  1447.           éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ó«º¼«ª¡«ßΓ∞  π»αáó½Ñ¡¿∩ ñ¿¡á¼¿¬«¼ ñ½∩
  1448.      ß«ºñá¡¿∩  αẽ¿τ¡δσ  ºóπ¬«óδσ  φΣΣÑ¬Γ«ó,  ¬«Γ«αδÑ,  ó  τáßΓ¡«ßΓ¿,
  1449.      ñѽáεΓ ó¿ñÑ«¿úαδ «τÑ¡∞ ¿¡ΓÑαÑß¡δ¼¿ ¿  »α¿ó½Ñ¬áΓѽ∞¡δ¼¿.  é «ß¡«óÑ
  1450.      óßÑσ ºóπ¬«óδσ φΣΣÑ¬Γ«ó ½Ñª¿Γ óáα∞¿α«óá¡¿Ñ  τáßΓ«Γδ ºóπ¬á  - τáßΓ«
  1451.      ßá¼δ¼ ¡Ñ«íδτ¡δ¼ «íαẫ¼.
  1452.  
  1453.           ìá»α¿¼Ñα, ñ½∩ ß«ºñá¡¿∩ φΣΣѬΓá  ºóπτá¡¿∩  ß¿αÑ¡δ  óδ  ñ«½ª¡δ
  1454.      óáα∞¿α«óáΓ∞  τáßΓ«Γπ ºóπ¬á ¼Ñªñπ ñóπ¼∩ ¬«¡Ñτ¡δ¼¿ Γ«τ¬á¼¿.  éδß«Γá
  1455.      ºóπ¬á ñ«½ª¡á ¿º¼Ñ¡∩Γ∞ß∩ «Γ ¼Ñ¡∞ΦÑ⌐ ¬ í«½∞ΦÑ⌐, á ºáΓѼ π¼Ñ¡∞ΦáΓ∞ß∩
  1456.      «Γ  í«½∞ΦÑ⌐  ¬  ¼Ñ¡∞ΦÑ⌐.  öπ¡¬µ¿∩  siren(),  »αÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ,
  1457.      ¿ß»«½∞ºπÑΓ φëà¼ÑΓ«ñ ñ½∩ ß«ºñá¡¿∩ φΣΣѬΓá ºóπτá¡¿∩ ß¿αÑ¡δ.
  1458.  
  1459.  
  1460.           #define DELAY 10000
  1461.  
  1462.           /* æ«ºñá¡¿Ñ φΣΣѬΓá ºóπτá¡¿∩ ß¿αÑ¡δ */
  1463.           void siren()
  1464.           {
  1465.             unsigned i,freq;
  1466.             union {
  1467.                long divisor;
  1468.                unsigned char c[2];
  1469.             } count;
  1470.  
  1471.             unsigned char p;
  1472.  
  1473.             p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
  1474.             outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ 0 ¿ 1 */
  1475.                /* »«óδΦÑ¡¿Ñ ºóπ¬á ß¿αÑ¡δ */
  1476.             for (freq = 1000;freq<3000;freq+=RATE) {
  1477.                count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
  1478.                                                   º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1479.                outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
  1480.                                       «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1481.                outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
  1482.                outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
  1483.  
  1484.                for (i=0;i<DELAY;++i);
  1485.             }
  1486.  
  1487.                /* »«¡¿ªÑ¡¿Ñ ºóπ¬á ß¿αÑ¡δ */
  1488.             for (;freq>1000;freq-=RATE) {
  1489.                count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
  1490.                                                   º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1491.                outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
  1492.                                       «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1493.                outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
  1494.                outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
  1495.  
  1496.                for (i=0;i<DELAY;++i);
  1497.             }
  1498.  
  1499.  
  1500.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1501. â½áóá VIII                                                    -- 26 --
  1502.  
  1503.  
  1504.             outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¡áτá½∞¡«ú« ó¿ñá Φáí½«¡á
  1505.                                         í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
  1506.           }
  1507.  
  1508.           éδ ¼«ªÑΓÑ    »ÑαÑ«»αÑñѽ¿Γ∞   º¡áτÑ¡¿Ñ   ¼á¬α«ßá   DELAY   ó
  1509.      ºáó¿ß¿¼«ßΓ¿ «Γ  »α«¿ºó«ñ¿Γѽ∞¡«ßΓ¿  óáΦÑú«  ¬«¼»∞εΓÑαá  ¿  óáΦÑú«
  1510.      ó¬πßá. èᬠóδ ó¿ñ¿ΓÑ,  Σπ¡¬µ¿∩ siren() óδ»«½¡∩ÑΓ «ñ¿¡ »«½¡δ⌐ µ¿¬½
  1511.      ºóπτá¡¿∩ ß¿αÑ¡δ ¿ ¡á φΓ«¼ ºáóÑαΦáÑΓ ßó«ε  αáí«Γπ.  ä½∩  »«½πτÑ¡¿∩
  1512.      φΣΣѬΓá  »α«ñ«½ª¿Γѽ∞¡«ú«  ºóπτá¡¿∩  ß¿αÑ¡δ  óá¼  ¡áñ«  »«¼ÑßΓ¿Γ∞
  1513.      «íαáΘÑ¡¿Ñ ¬ siren() ó µ¿¬½.
  1514.  
  1515.           ä½∩ ¿¼¿Γᵿ¿ ºóπ¬á óºαδóá,  ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩  ó«  ¼¡«ú¿σ
  1516.      ó¿ñÑ«¿úαáσ,  ¼«ª¡«  ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σπ¡¬µ¿ε siren() Γᬿ¼ «íαẫ¼,
  1517.      τΓ«íδ «¡á »«ºó«½∩½á úÑ¡Ñα¿α«óáΓ∞ ºóπ¬  ½¿Φ∞  ¡¿ßσ«ñ∩ΘÑ⌐  τáßΓ«Γδ.
  1518.      öπ¡¬µ¿∩  laser(),  »αÑñßΓáó½Ñ¡¡á∩  ¡¿ªÑ,  »«ºó«½∩ÑΓ »«½πτ¿Γ∞ φΓ«Γ
  1519.      φΣΣѬΓ.
  1520.  
  1521.  
  1522.           #define DELAY 10000
  1523.           /* »«½πτÑ¡¿Ñ φΣΣѬΓá óºαδóá */
  1524.           void laser()
  1525.           {
  1526.             unsigned i,freq;
  1527.             union {
  1528.                long divisor;
  1529.                unsigned char c[2];
  1530.             } count;
  1531.  
  1532.             unsigned char p;
  1533.  
  1534.             p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
  1535.             outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ 0 ¿ 1 */
  1536.                /* óºαδó */
  1537.                for (;freq>1000;freq-=RATE) {
  1538.                count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
  1539.                          º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1540.                outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
  1541.                          «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1542.                outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
  1543.                outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
  1544.  
  1545.                for (i = 0;i<DELAY;++i);
  1546.             }
  1547.             outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¡áτá½∞¡«ú« ó¿ñá Φáí½«¡á
  1548.                                í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
  1549.           }
  1550.  
  1551.  
  1552.  
  1553.           Å«ß½Ñ ¡Ñí«½∞Φ«ú«   φ¬ß»Ñα¿¼Ñ¡Γ¿α«óá¡¿∩   óδ   ß¼«ªÑΓÑ   ßἿ
  1554.      ß«ºñáóáΓ∞ Φ¿α«¬¿⌐ ß»Ñ¬Γα ºóπ¬«óδσ φΣΣÑ¬Γ«ó.  ê¡ΓÑαÑß »αÑñßΓáó½∩ÑΓ
  1555.      óáα∞¿α«ó᡿Ѡ߬«α«ßΓ∞ε  ¿º¼Ñ¡Ñ¡¿∩  τáßΓ«Γδ  ºóπ¬á  ñ½∩  »«½πτÑ¡¿∩
  1556.      «»αÑñѽѡ¡δσ φΣΣÑ¬Γ«ó.
  1557.  
  1558.  
  1559.  
  1560.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1561. â½áóá VIII                                                    -- 27 --
  1562.  
  1563.  
  1564.  
  1565.           æ«ºñá¡¿Ñ "¬«ß¼¿τÑ߬«⌐ ¼πºδ¬¿".
  1566.           ------------------------------
  1567.  
  1568.           æ«Ññ¿¡¿ó ó«Ññ¿¡« »α«¿ºó«½∞¡«Ñ ¬«½¿τÑßΓó« ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐
  1569.      æ¿ rend() ¿ sound(),  óδ ß«ºñáñ¿ΓÑ  "¬«ß¼¿τÑ߬πε"  ¼πºδ¬π.  çóπ¬,
  1570.      »«½πτáѼδ⌐   »α¿   óδ»«½¡Ñ¡¿¿   »α«úαá¼¼δ,  »αÑñßΓáó½Ñ¡¡«⌐  ¡¿ªÑ,
  1571.      ¡á»«¼¿¡áÑΓ "¼πºδ¬π ºóѺñ" ó ßΓáαδσ ¡áπτ¡«-Σá¡ΓáßΓ¿τÑ߬¿σ Σ¿½∞¼áσ.
  1572.      ìÑß¼«Γα∩ ¡á Γ«,  τΓ« óßÑ ºóπ¬¿ úÑ¡Ñα¿απεΓß∩ »α«¿ºó«½∞¡δ¼ «íαẫ¼,
  1573.      α¿Γ¼  ¿  α¿ßπ¡«¬   ¼Ñ½«ñ¿¿,   ó«º¡¿¬áεΘ¿Ñ   óαѼ∩   «Γ   óαѼѡ¿,
  1574.      ñÑ⌐ßΓó¿Γѽ∞¡« «ßΓáó½∩εΓ ó»ÑτáΓ½Ñ¡¿Ñ "¡ÑíÑß¡«⌐ ¼πºδ¬¿".
  1575.  
  1576.                /* è«ß¼¿τÑ߬á∩ ¼πºδ¬á ºóѺñ */
  1577.  
  1578.           #define DELAY 64000
  1579.  
  1580.           #include "dos.h"
  1581.  
  1582.           void sound();
  1583.  
  1584.           main()
  1585.           {
  1586.                int freq;
  1587.  
  1588.                do {
  1589.                     do {
  1590.                          freq = rand();
  1591.                     } while (freq>5000); /* »«ß½Ñ »Ñαß«¡á½∞¡«ú«
  1592.                                             »α«ß½πΦ¿óá¡¿∩ */
  1593.                     sound(freq);
  1594.                } while (!kbhit());
  1595.           }
  1596.  
  1597.           /* ºóπτá¡¿Ñ ñ¿¡á¼¿¬á ¡á ß»Ñµ¿Σ¿µ¿α«óá¡¡«⌐ τáßΓ«ΓÑ */
  1598.           void sound(freq)
  1599.           int freq;
  1600.           {
  1601.             unsigned i;
  1602.             union {
  1603.                long divisor;
  1604.                unsigned char c[2];
  1605.             } count;
  1606.  
  1607.             unsigned char p;
  1608.             count.divisor = 1193280 / freq; /* óδτ¿ß½Ñ¡¿Ñ ¡πª¡«ú«
  1609.                                                º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1610.                outportb(67,182); /* «íαáΘÑ¡¿Ñ ¬ Γá⌐¼Ñαπ 8253 »«ß½Ñ
  1611.                                     «»αÑñѽѡ¿∩ º¡áτÑ¡¿∩ ßτÑΓτ¿¬á */
  1612.                outportb(66,count.c[0]); /* »ÑαÑßδ½¬á ¼½áñΦÑú« íá⌐Γá */
  1613.                outportb(66,count.c[1]); /* »ÑαÑß佬á ßΓáαΦÑú« íá⌐Γá */
  1614.  
  1615.                p = inportb(97); /* τΓÑ¡¿Ñ ßπΘÑßΓóπεΘÑú« Φáí½«¡á í¿Γ */
  1616.                outportb(97,p|3); /* πßΓá¡«ó¬á í¿Γ 0 ¿ 1 */
  1617.  
  1618.  
  1619.  
  1620.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1621. â½áóá VIII                                                    -- 28 --
  1622.  
  1623.  
  1624.                for (i = 0;i<DELAY;++i); /* ºáñÑ᪬á 64000 ñ½∩ 10+ îúµ
  1625.                                            ¬«¼»∞εΓÑα«ó
  1626.                                         32000 ñ½∩ 6 îâµ PC/AT
  1627.                                         20000 ñ½∩ ßΓá¡ñáαΓá PC ¿ XT */
  1628.  
  1629.                outportb(97,p); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¡áτá½∞¡«ú« ó¿ñá
  1630.                     Φáí½«¡á í¿Γ ñ½∩ «Γ¬½ετÑ¡¿∩ ñ¿¡á¼¿¬á */
  1631.           }
  1632.  
  1633.           ¥Γá »α«úαá¼¼á úÑ¡Ñα¿απÑΓ ºóπ¬¿ τáßëë⌐ ¼Ñ¡ÑÑ 5000  âµ,  Γá¬
  1634.      ¬á¬   ºóπ¬¿   ¿¼Ñ¡¡«  ó  »αÑñѽáσ  φΓ«⌐  τáßΓ«Γδ  ¡á¿í«½ÑÑ  ¼∩ú¬«
  1635.      ó«ß»α¿¡¿¼áεΓß∩ ß½πσ«¼ ¿ ¡Ñ  óδσ«ñ∩Γ  ºá  úαá¡¿µδ,  ó«ß»α¿¡¿¼áѼδÑ
  1636.      πσ«¼ τѽ«óѬá.
  1637.  
  1638.           ÉѬ«¼Ñ¡ñπѼ óá¼   »«φ¬ß»Ñα¿¼Ñ¡Γ¿α«óáΓ∞  ß  φΓ«⌐  »α«úαá¼¼«⌐,
  1639.      πßΓá¡«ó¿ó »α«¿ºó«½∞¡πε ñ½¿¡π ¿¡ΓÑαóá½á óαѼѡ¿ ¼Ñªñπ  ºóπ¬á¼¿ ¿½¿
  1640.      Σ¿½∞Γαπ∩  º¡áτÑ¡¿∩,  »ÑαÑñáóáѼδÑ  ó  sound().  é«º¼«ª¡δ ¿ ñαπú¿Ñ
  1641.      óáα¿á¡Γδ αáºó¿Γ¿∩ óáΦÑú« Γó«ατÑßΓóá.
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.                                  "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1681.