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

  1.                                   âïÇéÇ 6                     -- 1 --
  2.                                   -------
  3.  
  4.            êæÅÄï£çÄéÇìêà ÅÄæïàäÄéÇÆàï£ìÄâÄ ÅÄÉÆÇ: ÅàÉàäÇùÇ öÇëïÄé ê
  5.                                ÅÉÄæÆàëÿêà ïéC
  6.      -----------------------------------------------------------------
  7.  
  8.           Å«ªá½π⌐ ¡ÑΓ Γᬫ⌐ ñpπú«⌐ «íΘÑ⌐ íÑñδ ñ½∩  óßÑσ »p«úpá¼¼¿ßΓ«ó,
  9.      ¬á¬ áß¿¡σp«¡¡δ⌐ »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ. ìÑ»«σ«ª¿⌐ ¡á í«½ÑÑ »p«ßΓ«⌐
  10.      »ápώѽ∞¡δ⌐  »«pΓ,  »«ß½Ññ«óáΓѽ∞¡δ⌐  »«pΓ,  ¬á¬  ¡¿  ¬Γ«  í«½ÑÑ
  11.      »«ñóÑpªÑ¡   µÑ½«¼π  ßѼÑ⌐ßΓóπ  pẽ¿τ¡δσ  Γ¿»«ó  «Φ¿í«¬  »ÑpÑñáτ¿
  12.      ñá¡¡δσ. Åp«í½Ñ¼á  πß½«ª¡∩ÑΓß∩  ΓѼ,  τΓ«  ß¿ú¡á½   "»«ñΓóÑpªñÑ¡¿Ñ
  13.      ßó∩º¿", ¬«Γ«pδ⌐   »«¼«úáÑΓ  ¬«ppÑ¬Γ¡«  óδ»«½¡∩Γ∞  ß««ΓóÑΓßΓóπεΘπε
  14.      »ÑpÑñáτπ ñá¡¡δσ »p¿¼Ñ¡¿Γѽ∞¡«  ¬  »«ß½Ññ«óáΓѽ∞¡«¼π  »«pΓπ  τáßΓ«
  15.      »ÑpÑñáÑΓß∩ "¼¿¼«" Φ¿¡δ ¬áíѽ∩, ßó∩ºδóáεΘÑú« »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ
  16.      ¿    ó¡ÑΦ¡ÑÑ    πßΓp«⌐ßΓó«.    Äñ¡á¬«,    ¡Ñß¼«Γp∩     ¡á     φΓ¿
  17.      »p«í½Ñ¼δ »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ ¿ß»«½∞ºπÑΓß∩ Φ¿pÑ,  Γᬠ¬á¬ ¿¼Ñ¡¡«
  18.      «¡ »«ºó«½∩ÑΓ ¿ß»«½∞º«óáΓ∞ ßá¼δ⌐ ñÑΦÑóδ⌐ »πΓ∞ ñ½∩  ß«Ññ¿¡Ñ¡¿∩ ñóπσ
  19.      πßΓp«⌐ßΓó, pạÑßÑ¡¡δσ ¡á páßßΓ«∩¡¿Ñ, »pÑóδΦáεΘÑÑ »ápπ ΣπΓ«ó.
  20.  
  21.           ûѽ∞ φΓ«⌐  ú½áóδ  - ñáΓ∞ «ß¡«óδ πßΓp«⌐ßΓóá »«ß½Ññ«óáΓѽ∞¡«ú«
  22.      »«pΓá ¿ páí«Γδ ß ¡¿¼,  ó¬½ετá∩ ¿¡¿µ¿á½¿ºáµ¿ε,  »ÑpÑñáτπ  ¿  »p¿Ñ¼
  23.      ñá¡¡δσ,  á  ΓᬪѠ«íßπñ¿Γ∞ ¡á¿í«½ÑÑ «íΘ¿Ñ «Φ¿í¬¿,  ó«º¡¿¬áεΘ¿Ñ ó«
  24.      ópѼ∩ páí«Γδ ß »«ß½Ññ«óáΓѽ∞¡δ¼ »«pΓ«¼.
  25.  
  26.           ìáí«α «»Ñpᵿ⌐    páí«Γδ    ß    »«ß½Ññ«óáΓѽ∞¡δ¼     »«pΓ«¼
  27.      «íπß½áó½¿óáÑΓ  Ñú«  ¿ß»«½∞º«óá¡¿Ñ  ó  ¬áτÑßΓóÑ ß«ßΓáó¡«⌐ τáßΓ¿ »«
  28.      ¬pá⌐¡Ñ⌐  ¼ÑpÑ  ó  ñóπσ  »p¿½«ªÑ¡¿∩σ.  é«-»Ñpóδσ,  φΓ«   »p«úpá¼¼á
  29.      »ÑpÑß佬¿   Σá⌐½á,  ¬«Γ«pá∩  ¼«ªÑΓ  ¿ß»«½∞º«óáΓ∞ß∩  ñ½∩  »ÑpÑñáτ¿
  30.      pẽ¿τ¡δσ Γ¿»«ó  Σá⌐½«ó  (ó¬½ετá∩  ñó«¿τ¡δÑ  Σá⌐½δ)  ¼Ñªñπ  ñóπ¼∩
  31.      ¬«¼»∞εΓÑpἿ.  Åp«úpἼᠠ»ÑpÑß佬¿  Σá⌐½á  «ß«íÑ¡¡«  »«½Ñº¡á »p¿
  32.      pÑΦÑ¡¿¿ »p«í½Ñ¼δ ßΓδ¬«ó¬¿ pẽ¿τ¡δσ Γ¿»«ó ¬«¼»∞εΓÑp«ó. é«-óΓ«pδσ,
  33.      φΓ«  »p«í½Ñ¼á  ß«ºñá¡¿∩ »p«ßΓÑ⌐Φ¿σ ½«¬á½∞¡δσ óδτ¿ß½¿Γѽ∞¡δσ ßÑΓÑ⌐
  34.      (ïéæ),  ó¬½ετáεΘ¿σ  ó  ßÑí∩  Σá⌐½«óδ⌐  »p«µÑßß«p  (ñ½∩  »«ññÑpª¬¿
  35.      ó¡ÑΦ¡¿σ  çô  í«½∞Φ«⌐  Ñ¼¬«ßΓ¿)  ¿  ¡áí«p  ¿º  ñóπσ  ¡«óδ󠬫¼á¡ñ,
  36.      »«ºó«½∩εΘ¿σ  πñá½Ñ¡¡δ¼  ¬«¼»∞εΓÑpá¼  ºáúpπªáΓ∞   Σá⌐½δ   ¿º   ¿½¿
  37.      ºá»¿ßδóáΓ∞ ó Σá⌐½«óδ⌐ »p«µÑßß«p.
  38.  
  39.           Åp¿¼Ñpδ, »p¿óÑñÑ¡¡δÑ ó φΓ«⌐ ú½áóÑ, ß«ó¼ÑßΓ¿¼δ ß ¬«¼»∞εΓÑpἿ
  40.      IBM PC, XT, AT ¿½¿ PS/2 (á ΓᬪѠ¡á ß«ó¼ÑßΓ¿¼δσ ß φΓ¿¼¿ ¼«ñѽ∩¼¿)
  41.      »«ñ  π»páó½Ñ¡¿Ñ¼ DOS.  Äñ¡á¬«  óδ  ½Ñú¬«  ß¼«ªÑΓÑ  «ßπΘÑßΓó¿Γ∞ ¿σ
  42.      »ÑpÑ¡«ß ó ñpπú¿Ñ «»Ñpᵿ«¡¡δÑ ß¿ßΓѼδ, ó¬½ετá∩ OS/2.
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  61. â½áóá VI                                                     -- 2 --
  62.  
  63.  
  64.                 ÇæêìòÉÄììǃ ÅÄæïàäÄéÇÆàï£ìǃ ÅàÉàäÇùÇ äÇìì¢ò
  65.      -----------------------------------------------------------------
  66.  
  67.           ÅÑpÑñ ΓѼ,  ¬á¬   »ÑpÑ⌐Γ¿   ¬   ¿ºπτÑ¡¿ε   »«ß½Ññ«óáΓѽ∞¡«ú«
  68.      áß¿¡σp«¡¡«ú«  »«pΓá  ó««íΘÑ  óá¼  ¡Ñ«íσ«ñ¿¼«  »«½πτ¿Γ∞  ¡Ñ¬«Γ«pδÑ
  69.      ßóÑñÑ¡¿∩ « »p¿¡µ¿»áσ áß¿¡σp«¡¡«⌐ »ÑpÑñáτ¿ ñá¡¡δσ. ( é ñá½∞¡Ñ⌐ΦѼ,
  70.      ñ½∩  »p«ßΓ«Γδ  ¿º½«ªÑ¡¿∩  ¼áΓÑp¿á½á  íπñѼ  ¡áºδóáΓ∞  áß¿¡σp«¡¡δ⌐
  71.      »«ß½Ññ«óáΓѽ∞¡δ⌐  »«pΓ  -  "»«ß½Ññ«óáΓѽ∞¡δ¼   »«pΓ«¼").   äá¡¡δÑ
  72.      »ÑpÑñáεΓß∩  τÑpѺ  »«ß½Ññ«óáΓѽ∞¡δ⌐  »«pΓ  »«pµ¿∩¼¿ ó «ñ¿¡ í¿Γ ºá
  73.      Ññ¿¡¿µπ ópѼѡ¿.  é φΓ«¼ ß«ßΓ«¿Γ «Γ½¿τ¿Ñ »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá
  74.      «Γ »ápώѽ∞¡«ú«, ¬«Γ«pδ⌐ «ßπΘÑßΓó½∩ÑΓ »ÑpÑñáτπ ñá¡¡δσ »«pµ¿∩¼¿ ó
  75.      «ñ¿¡  íá⌐Γ  ºá  Ññ¿¡¿µπ  ópѼѡ¿.  ÅÑpÑñáτá   ñá¡¡δσ   ¡áºδóáÑΓß∩
  76.      áß¿¡σp«¡¡«⌐  »«Γ«¼π,  τΓ« ñ½¿¡á ¿¡ΓÑpóá½á ópѼѡ¿ ¼Ñªñπ »ÑpÑñáτÑ⌐
  77.      «τÑpÑñ¡«ú« íá⌐Γá ¿¡Σ«p¼áµ¿¿ (»« 1 í¿Γπ  ºá  Ññ¿¡¿µπ  ópѼѡ¿)  ¡Ñ
  78.      ¿¼ÑÑΓ ¡¿¬á¬«ú« º¡áτÑ¡¿∩. Å«φΓ«¼π «ß¡«ó¡δ¼¿ ∩ó½∩εΓß∩ ß¿¡σp«¡¿ºáµ¿∩
  79.      ¿ »«ß½Ññ«óáΓѽ∞¡«ßΓ∞  »ÑpÑñáτ¿  µÑ»«τ¬¿  í¿Γ,¬«Γ«pδÑ  ó  ¬«¡Ñτ¡«¼
  80.      ¿Γ«úÑ ß«ßΓáó½∩εΓ íá⌐Γ ¿½¿ ñpπúπε ¿¡Σ«p¼áµ¿«¡¡πε Ññ¿¡¿µπ.
  81.  
  82.           èáªñδ⌐ íá⌐Γ   ñá¡¡δσ,  »ÑpÑñáóáѼδσ  τÑpѺ  »«ß½Ññ«óáΓѽ∞¡δ⌐
  83.      »«pΓ, ß«ßΓ«¿Γ ¿º ß½ÑñπεΘÑ⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ß¿ú¡á½∞¡δσ í¿Γ«ó:
  84.  
  85.           1. Äñ¿¡ ßΓápΓ«óδ⌐ í¿Γ
  86.           2. é«ßѼ∞ í¿Γ«ó ñá¡¡δσ ( ó ¡Ñ¬«Γ«pδσ ß½πτá∩σ - 7 )
  87.           3. ìÑ«í∩ºáΓѽ∞¡δ⌐ í¿Γ τÑΓ¡«ßΓ¿
  88.           4. Äñ¿¡ ¿½¿ ñóá ¬«¡Ñτ¡δσ í¿Γá
  89.  
  90.           îѪñπ »ÑpÑñáτÑ⌐  ¬áªñ«ú«  íá⌐Γá  ¼«ªÑΓ  »p«σ«ñ¿Γ∞  ¡Ñ¬«Γ«pδ⌐
  91.      »p«¼ÑªπΓ«¬ ópѼѡ¿.
  92.  
  93.           épѼ∩ »p«ßΓ«∩ ¬á¡á½á  »ÑpÑñáτ¿  ñ½∩  φΓ«ú«  pѪ¿¼á  ñ«ó«½∞¡«
  94.      óѽ¿¬«.  î½áñΦ¿⌐  í¿Γ  »ÑpÑñáóáѼ«⌐ "»«pµ¿¿" ñá¡¡δσ ¿¼ÑÑΓ ¡π½Ñó«Ñ
  95.      º¡áτÑ¡¿Ñ,  ßΓápΦ¿⌐ í¿Γ,  ºáóÑpΦáεΘ¿⌐ «τÑpÑñ¡πε  "»«pµ¿ε"  ñá¡¡δσ,
  96.      »p¿¡¿¼áÑΓ  º¡áτÑ¡¿Ñ  páó¡«Ñ Ññ¿¡¿µÑ.  æΓápΦ¿⌐ í¿Γ ß¿ú¡á½¿º¿pπÑΓ «
  97.      ¡áτá½Ñ »ÑpÑñáτ¿ ¡«ó«ú« íá⌐Γá, ¬«Γ«pδ⌐ ßτ¿ΓδóáÑΓß∩ ó ¬á¡á½ ºá «ñ¿¡
  98.      µ¿¬½,  ¡áτ¿¡á∩  ß ¼½áñΦÑú« í¿Γá.  ü¿Γδ ñá¡¡δσ »ÑpÑñáεΓß∩ óß½Ññ ºá
  99.      ¡Ñ«í∩ºáΓѽ∞¡δ¼ í¿Γ«¼ τÑΓ¡«ßΓ¿.  é ¬«¡µÑ »ÑpÑßδ½áεΓß∩ «ñ¿¡ ¿½¿ ñóá
  100.      í¿Γá,   ß¿ú¡á½¿º¿pπεΘ¿σ   «   ¬«¡µÑ  «τÑpÑñ¡«⌐  "»«pµ¿¿"  ñá¡¡δσ,
  101.      ßτ¿Γá¡¡δσ ºá «ñ¿¡ µ¿¬½.  çáóÑpΦáεΘ¿Ñ (¬«¡Ñτ¡δÑ)  í¿Γδ  «»pÑñѽ∩εΓ
  102.      ¼¿¡¿¼á½∞¡«Ñ  ópѼ∩  ¼Ñªñπ  »ÑpÑñáτÑ⌐  ñóπσ  íá⌐Γ«ó.  Äíδτ¡« τ¿ß½«
  103.      ºáóÑpΦáεΘ¿σ í¿Γ«ó ¡Ñ ¿¼ÑÑΓ í«½∞Φ«ú« º¡áτÑ¡¿∩,  »«φΓ«¼π óδ  ¼«ªÑΓÑ
  104.      ¿ß»«½∞º«óáΓ∞  ½¿í« «ñ¿¡,  ½¿í« ñóá ºáóÑpΦáεΘ¿σ í¿Γá ó ºáó¿ß¿¼«ßΓ¿
  105.      «Γ Γ«ú«,  ¬á¬«Ñ ¿σ  τ¿ß½«  ¿ß»«½∞ºπεΓ  »ÑpÑñáεΘ¿⌐  ¿  »p¿¡¿¼áεΘ¿⌐
  106.      »«pΓδ.
  107.  
  108.           ü¿Γ τÑΓ¡«ßΓ¿, Ñß½¿ «¡ »p¿ßπΓßΓóπÑΓ ó »ÑpÑñáóáѼ«¼ ß««íΘÑ¡¿¿,
  109.      ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¬«¡Γp«½∩ ¬«ppÑ¬Γ¡«ßΓ¿ »ÑpÑñáτ¿ ¿  »«¿ß¬á «Φ¿í«¬.
  110.      è«¡Γp«½∞  »ÑpÑñáτ¿ ¼«ªÑΓ »p«ó«ñ¿Γ∞ß∩ ¬á¬ ¡á τÑΓ¡«ßΓ∞ (¬«¡Γp«½∞¡δ⌐
  111.      páºp∩ñ páóÑ¡ ßπ¼¼Ñ »« ¼«ñπ½ε 2 ¿¡Σ«p¼áµ¿«¡¡δσ  páºp∩ñ«ó  ¿  «íΘÑÑ
  112.      τ¿ß½« Ññ¿¡¿τ¡δσ páºp∩ñ«ó τÑΓ¡«), Γᬠ¿ ¡á ¡ÑτÑΓ¡«ßΓ∞ (¬«¡Γp«½∞¡δ⌐
  113.      páºp∩ñ ¡Ñ páóÑ¡ ßπ¼¼Ñ »« ¼«ñπ½ε 2 ¿¡Σ«p¼áµ¿«¡¡δσ páºp∩ñ«ó ¿ «íΘÑÑ
  114.      τ¿ß½« Ññ¿¡¿τ¡δσ páºp∩ñ«ó ¡ÑτÑΓ¡«).
  115.  
  116.           æ¬«p«ßΓ∞ »ÑpÑñáτ¿  í¿Γ«ó »« ¬á¡á½π ¿º¼Ñp∩ÑΓß∩ ó í«ñáσ (í¿Γ ó
  117.      ßѬπ¡ñπ).  ìῼѡ∞ΦÑ⌐ ß¬«p«ßΓ∞ε »ÑpÑñáτ¿ ¿¡Σ«p¼áµ¿¿ ßτ¿ΓáÑΓß∩ 300
  118.  
  119.  
  120.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  121. â½áóá VI                                                     -- 3 --
  122.  
  123.  
  124.      í«ñ.  ¥Γᠠ߬«p«ßΓ∞  »ÑpÑñáτ¿  ¿ß»«½∞º«óá½áß∞  ó  ßΓápδσ  ¼«ñѼáσ
  125.      (ßÑ⌐τáß í«½∞Φ¿¡ßΓó« ¼«ñѼ«ó »«ºó«½∩εΓ ñ«ßΓ¿úáΓ∞ ß¬«p«ßΓ¿ »ÑpÑñáτ¿
  126.      «Γ  1200 ñ« 2400 í«ñ).  æÑ¼Ñ⌐ßΓó« ¬«¼»∞εΓÑp«ó IBM PC »«ññÑpª¿óáεΓ
  127.      ß¬«p«ßΓ∞ »ÑpÑñáτ¿ ñá¡¡δσ ó 9600 í«ñ.  ìѬ«Γ«pδÑ Γ¿»δ  ¬«¼»∞εΓÑp«ó
  128.      »«ºó«½∩εΓ ñ«ßΓ¿úáΓ∞ ß¬«p«ßΓ¿ »ÑpÑñáτ¿ ñá¡¡δσ ó 38400 í«ñ!
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  181. â½áóá VI                                                     -- 4 --
  182.  
  183.  
  184.                               æÆÇìäÇÉÆ RS-232
  185.      -----------------------------------------------------------------
  186.  
  187.           ìÑß¼«Γp∩ ¡á Γ«,  τΓ«  ¿ºπτÑ¡¿Ñ  ßΓá¡ñápΓá  RS-232  ¡Ñ  ¿¼ÑÑΓ
  188.      í«½∞Φ«ú«     ó½¿∩¡¿∩    ¡á    »«¡¿¼á¡¿Ñ    páí«Γδ    áß¿¡σp«¡¡«ú«
  189.      »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓᠠ󠠵ѽ«¼,  «º¡á¬«¼½Ñ¡¿Ñ   τ¿ΓáΓѽ∩   ß«
  190.      ßΓá¡ñápΓ«¼ áß¿¡σp«¡¡«ú«   »«ß½Ññ«óáΓѽ∞¡«ú«   ¿¡ΓÑpΣÑ⌐ßá   RS-232
  191.      (á¡á½«ú ó æææÉ  -  ßΓδ¬  æ-2)  ∩ó½∩ÑΓß∩  µÑ½∞ε  ¡áßΓ«∩ΘÑ⌐  ú½áóδ.
  192.      êºπτÑ¡¿Ñ φΓ«ú« ¼áΓÑp¿á½á »«¼«ªÑΓ óá¼ í«½ÑÑ ñÑΓá½∞¡« »«¡∩Γ∞, ¬á¬¿Ñ
  193.      »p«í½Ñ¼δ ó«º¡¿¬áεΓ »p¿ ¿ß»«½∞º«óá¡¿¿  »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá  ¿
  194.      ¬á¬ φΓ¿ »p«í½Ñ¼δ ¼«úπΓ íδΓ∞ páºpÑΦÑ¡δ.
  195.  
  196.           è«¡Σ¿úπpᵿ∩ í«½∞Φ¿¡ßΓóá  »«ß½Ññ«óáΓѽ∞¡δσ  »«pΓ«ó  ∩ó½∩ÑΓß∩
  197.      ßΓá¡ñápΓ¡«⌐,  «ñ¡á¬« ¡á¿í«½ÑÑ  Φ¿p«¬«Ñ  páß»p«ßΓpá¡Ñ¡¿Ñ  »«½πτ¿½á
  198.      ¬«¡Σ¿úπpᵿ∩,   ß««ΓóÑΓßΓóπεΘá∩   ßΓá¡ñápΓπ   RS-232.   Å«  φΓ«¼π
  199.      ßΓá¡ñápΓπ páºΩѼ ß«ñÑpª¿Γ 25 ¬«¡Γá¬Γ«ó.  (é ¬«¼»∞εΓÑpÑ IBM PC  AT
  200.      ¿ß»«½∞ºπÑΓß∩  9-Γ¿  ¬«¡Γá¬Γ¡δ⌐  páºΩѼ).  æ½ÑñπÑΓ  «Γ¼ÑΓ¿Γ∞,  τΓ«
  201.      ñ«ó«½∞¡« í«½∞Φ«Ñ τ¿ß½« »«ß½Ññ«óáΓѽ∞¡δσ  »«pΓ«ó  ¡Ñ  »«ññÑpª¿óáεΓ
  202.      óÑß∞   ¡áí«p  ß¿ú¡á½«ó,  ß»Ñµ¿Σ¿µ¿p«óá¡¡δσ  ó  ßΓá¡ñápΓÑ  RS-232.
  203.      ìѬ«Γ«pδÑ ß¿ú¡á½δ ¡Ñ »«ññÑpª¿óáεΓß∩ ó ßó∩º¿ ß  ΓѼ,  τΓ«  «¡¿  ¡Ñ
  204.      »pÑñ¡áº¡áτÑ¡δ  ñ½∩  ¿ß»«½∞º«óá¡¿∩ ó Γᬫ¼ »p¿½«ªÑ¡¿¿ ¿ ß½πªáΓ ñ½∩
  205.      ñpπú¿σ µÑ½Ñ⌐;  ñpπú¿Ñ ¡Ñ »«ññÑpª¿óáεΓß∩ »« »p¿τ¿¡Ñ Γ«ú«,  τΓ« «¡¿
  206.      óδ»π߬὿ß∞ ó Γ« ópѼ∩,  ¬«úñá ßΓá¡ñápΓ RS-232 ÑΘÑ ¡Ñ ßπΘÑßΓó«óá½
  207.      ó««íΘÑ ¿½¿ ªÑ µÑ½∞ε ¿σ  ß«ºñá¡¿∩  ¡Ñ  ∩ó½∩½áß∞  »«½¡á∩  »«ññÑpª¬á
  208.      ßΓá¡ñápΓá  RS-232  ¿ «¡¿ ó φΓ«¼ ß½πτáÑ ó¬½ετáεΓ ½¿Φ∞ «úpá¡¿τÑ¡¡δ⌐
  209.      ¡áí«p ß¿ú¡á½«ó  RS-232  .  ìá¿í«½ÑÑ  «íΘ¿¼¿  ß¿ú¡á½á¼¿  ßΓá¡ñápΓá
  210.      RS-232 ∩ó½∩εΓß∩:
  211.  
  212.         æ¿ú¡á½                  ÇíípÑó¿áΓπpá       ÿΓδp∞ páºΩѼá
  213.         ------                  ------------      ---------------
  214.      çá»p«ß ¡á »«ß佬π ñá¡¡δσ        RTS                 4
  215.      Äτ¿ßΓ¬á ñ½∩ »«ß佬¿             CTS                 5
  216.      ìáí«p ñá¡¡δσ ú«Γ«ó              DSR                 6
  217.      ìáí«p ñá¡¡δσ ºáóÑpΦÑ¡           DTR                20
  218.      ÅÑpÑñáτá ñá¡¡δσ                 TxD                 2
  219.      Åp¿Ñ¼ ñá¡¡δσ                    RxD                 3
  220.      çѼ½∩                           GRD                 7
  221.  
  222.  
  223.           ìá ßἫ¼ ñѽѠ߿ú¡á½«ó ¡á¼¡«ú« í«½∞ΦÑ ¿ φΓ« «íπß½«ó½Ñ¡« ΓѼ,
  224.      τΓ«   »«ß½Ññ«óáΓѽ∞¡δ⌐  »«pΓ  »Ñpó«¡áτá½∞¡«   páºpáíáΓδóá½ß∩  ¬á¬
  225.      πßΓp«⌐ßΓó«  »«ññÑpª¬¿   ¼«ñѼá.   é  ßó∩º¿  ß   φΓ¿¼,  Ñß½¿  »«pΓ
  226.      ¿ß»«½∞ºπÑΓß∩ ß«ó¼ÑßΓ¡« ß ñpπú¿¼¿ πßΓp«⌐ßΓóἿ,  Γ« ¼¡«ú¿Ñ  ¿º Ñú«
  227.      ß¿ú¡á½«ó »p«ßΓ« ó φΓ«¼ ß½πτáÑ ¡Ñ ¡πª¡δ.  ¥Γ¿ ß¿ú¡á½δ ¿ß»«½∞ºπεΓß∩
  228.      ñ½∩  πßΓá¡«ó½Ñ¡¿∩  »p«Γ«¬«½á á»»ápáΓ¡«ú« πp«ó¡∩  ¼Ñªñπ  ¼«ñѼ«¼ ¿
  229.      ¬«¼»∞εΓÑp«¼, Ñß½¿ φëଫ¼»∞εΓÑp (1) ÑΘÑ ¡Ñ »ÑpÑñáóá½ ¿¡Σ«p¼áµ¿ε,
  230.      ¡« πªÑ ú«Γ«ó ¬ ÑÑ  »ÑpÑñáτÑ ¿½¿  (2)  »ÑpÑñáτá ñá¡¡δσ «Γ ¼«ñѼᠬ
  231.      ¬«¼»∞εΓÑpπ ÑΘÑ ¡Ñ «ßπΘÑßΓó½∩½áß∞.
  232.  
  233.           ÄΦ¿í¬á ¬áñp¿α«óá¡¿∩ (Γ.Ñ.  «Φ¿í¬á,  ó«º¡¿¬áεΘá∩ »p¿ »ÑpÑñáτÑ
  234.      »«pµ¿¿    ñá¡¡δσ,   »ÑpÑñáóáѼ«⌐   ¬á¡á½∞¡δ¼   πp«ó¡Ñ¼   ßÑΓÑó«ú«
  235.      óºá¿¼«ñÑ⌐ßΓó¿∩)    Σ¿¬ß¿pπÑΓß∩    ó    ß½πτáÑ,    Ñß½¿    τáßΓ«Γδ
  236.      ß¿¡σp«¡¿º¿pπεΘ¿σ  ¿¼»π½∞ß«ó  ñóπσ  »«pΓ«ó  º¡áτ¿Γѽ∞¡« «Γ½¿τáεΓß∩
  237.      ñpπú «Γ ñpπúá.  èᬠóδ ¼«ªÑΓÑ ñ«úáñáΓ∞ß∩,  »«ß½Ññ«óáΓѽ∞¡δ⌐  »«pΓ
  238.  
  239.  
  240.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  241. â½áóá VI                                                     -- 5 --
  242.  
  243.  
  244.      »«ß½Ñ  Γ«ú«,  ¬á¬  «¡  «í¡ápπª¿½ ßΓápΓ«óδ⌐ í¿Γ,  óδñѽ∩ÑΓ pÑú¿ßΓp
  245.      óó«ñá,  ¬«Γ«pδ⌐ ºá ¬áªñδ⌐ µ¿¬½ ßτ¿ΓδóáÑΓ «ñ¿¡  í¿Γ.  ä½¿¡á  φΓ«ú«
  246.      µ¿¬½á   «»pÑñѽ∩ÑΓß∩  ß¬«p«ßΓ∞ε  »ÑpÑñáτ¿  ñá¡¡δσ.  Äñ¡á¬«  ópѼ∩
  247.      ¡áσ«ªñÑ¡¿∩  í¿Γá  ó  peú¿ßΓpe  «»pÑñѽ∩ÑΓß∩   Γá¬Γ«ó«⌐   τáßëë⌐
  248.      ß¿ßΓѼδ.   àß½¿  τáßΓ«Γá  ¬«¼»∞εΓÑpá-»p¿Ñ¼¡¿¬á  ¡Ññ«ßΓáΓ«τ¡á  ñ½∩
  249.      »«¬pδΓ¿∩  τáßΓ«Γδ  ¬«¼»∞εΓÑpá-¿ßΓ«τ¡¿¬á,  Γ«  »p«¿ßσ«ñ¿Γ   »«ΓÑp∩
  250.      »«½πτÑ¡¡«ú«   í¿Γá   (Γ.¬.  pÑú¿ßΓp  ºá¡∩Γ),  ó  ßó∩º¿  ß  τѼ  ¿
  251.      pÑú¿ßΓp¿pπÑΓß∩ «Φ¿í¬á ¬áñα¿p«óá¡¿∩ (framing error).
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  301. â½áóá VI                                                     -- 6 --
  302.  
  303.  
  304.                        ÇÅÅÇÉÇÆìÄà ÅÄäÆéàÉåäàìêà æéƒçê
  305.      -----------------------------------------------------------------
  306.  
  307.           ìÑ»«ßpÑñßΓóÑ¡¡á∩ »ÑpÑñáτá  ñá¡¡δσ ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá
  308.      óδ»«½¡∩ÑΓß∩ »«ß½Ñ   Γ«ú«,   ¬á¬    ¼«¡¿Γ«p    «í¡ápπª¿Γ    ß¿ú¡á½
  309.      "«τ¿ßΓ¬á-ñ½∩-»«ß佬¿" (CTS),  «Γ»páó½Ñ¡¡δ⌐ ¿º »«pΓá-»p¿Ñ¼¡¿¬á. éδ
  310.      ¡Ñ ñ«½ª¡δ »ÑpÑñáóáΓ∞ ñá¡¡δÑ ñ« ΓÑσ »«p,  »«¬á ß  »«¼«Θ∞ε  ß¿ú¡á½á
  311.      "«τ¿ßΓ¬á-ñ½∩-»«ß佬¿"   ¡Ñ   íπñÑΓ   ¿¡ñ¿µ¿p«óá¡á   ¡áñѪ¡«ßΓ∞  ¿
  312.      íѺ«»áß¡«ßΓ∞   »ÑpÑñáτ¿.   Æá¬¿¼   «ípẫ¼,   »p¿   ¿ß»«½∞º«óá¡¿¿
  313.      á»»ápáΓ¡«ú«  »«ñΓóÑpªñÑ¡¿∩  ßó∩º¿  »«ñ»p«úpἼᠠ»ÑpÑñáτ¿ ñá¡¡δσ,
  314.      ¡á»¿ßá¡¡á∩ ó ΓÑp¼¿¡áσ »ßÑóñ«-æê, íπñÑΓ ¿¼ÑΓ∞ ó¿ñ:
  315.  
  316.      do {
  317.        while(not CTS) wait;
  318.        send(byte);
  319.      } while(bytes to send);
  320.  
  321.           àß½¿ óδ ¿¼ÑÑΓÑ ß«Ññ¿¡Ñ¡¡δÑ ½¿¡¿Ñ⌐  ßó∩º¿ á»»ápáΓ¡δÑ ßpÑñßΓóá
  322.      ¿ ¿σ ß«»p∩ªÑ¡¿Ñ ß ½¿¡¿Ñ⌐ ßó∩º¿ óδ»«½¡Ñ¡« »« ßΓá¡ñápΓπ  RS-232, Γ«
  323.      óδ  ß  πß»Ñσ«¼  ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ΓÑ »pÑ¿¼πΘÑßΓóá,  ¬«Γ«pδÑ óá¼
  324.      ñáÑΓ á»»ápáΓ¡«Ñ »«ñΓóÑpªñÑ¡¿Ñ ßó∩º¿.  Äñ¡á¬« ß«óßѼ ¡Ññáó¡« φΓ«ú«
  325.      ¡Ñ½∞º∩ í佫 ñѽáΓ∞.
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  361. â½áóá VI                                                     -- 7 --
  362.  
  363.  
  364.                           ÅÉÄüïàÅàÉàäÇùê äÇìì¢ò
  365.      -----------------------------------------------------------------
  366.  
  367.           Åp¿ «púá¡¿ºáµ¿¿ »ÑpÑñáτ¿ ñá¡¡δσ ß »«¼«Θ∞ε  ¼«ñѼᠠ¡Ñ¬«Γ«pδÑ
  368.      ß¿ú¡á½δ   ¿ß»«½∞ºπεΓß∩  ñ½∩  «»pÑñѽѡ¿∩  ú«Γ«ó¡«ßΓ¿  ñá¡¡δσ  ¿½¿
  369.      «»pÑñѽѡ¿∩ ß½ÑñπεΘÑú«  íá⌐Γá  »«ß佬¿.  Äñ¡á¬«,  ¬«úñá  »ÑpÑñáτá
  370.      ñá¡¡δσ «ßπΘÑßΓó½∩ÑΓß∩ ¼Ñªñπ ñóπ¼∩ ¬«¼»∞εΓÑpἿ, Γ« ¡áí«p ß¿ú¡á½«ó
  371.      (¡Ñ  ¡Ñ«íσ«ñ¿¼δ⌐,  ¡«  ªÑ½áΓѽ∞¡δ⌐),  ¿ß»«½∞ºπѼδ⌐   ñ½∩   «í¼Ñ¡á
  372.      ñá¡¡δ¼¿,  ¼«ªÑΓ  íδΓ∞  «úpá¡¿τÑ¡  ½¿Φ∞ ß¿ú¡á½á¼¿ GRD,  TxD ¿ RxD.
  373.      Äß¡«ó¡δ¼¿     ñ«ó«ñἿ     ºá     ¿ß»«½∞º«óá¡¿Ñ     φΓ¿σ     ΓpÑσ
  374.      á»»ápáΓ¡«-pÑ὿º«óá¡¡δσ   ¼¿¬p«»p«úpá¼¼,   ∩ó½∩ÑΓß∩  º¡áτ¿Γѽ∞¡«Ñ
  375.      π¼Ñ¡∞ΦÑ¡¿Ñ   ßΓ«¿¼«ßΓ¿   »ÑpÑñáτ¿   ñá¡¡δσ   »«    ßpáó¡Ñ¡¿ε    ß
  376.      ¿ß»«½∞º«ó᡿Ѽ »∩Γ¿ ¿½¿,  ß¬áªÑ¼, ΦÑßΓ¿ ¼¿¬p«»p«úpá¼¼ π»páó½Ñ¡¿∩.
  377.      àß½¿ ñóá ¬«¼»∞εΓÑpá «ñ¡«ú« Γ¿»á ß«Ññ¿¡Ñ¡δ ¬á¡á½«¼ »ÑpÑñáτ¿ ñá¡¡δσ
  378.      ¿  «ñ¿¡  ¿º  ¡¿σ  ú«Γ«ó  »ÑpÑñáΓ∞ ñá¡¡δÑ,  Γ« óΓ«p«⌐ ΓÑ«pÑΓ¿τÑ߬¿
  379.      óßÑúñá ú«Γ«ó »p¿¡∩Γ∞ ¿σ. Äñ¡á¬« ó ßΓá¡ñápΓÑ RS-232 ¿¼ÑÑΓß∩ »p∩¼«-
  380.      Γᬿ  ¡áßΓ«∩Θ¿⌐  ∩Θ¿¬  Åá¡ñ«pδ,  ß«ñÑpªáΘ¿⌐  «Φ¿í¬¿,  ßó∩ºá¡¡δÑ ß
  381.      ó«º¼«ª¡«ßΓ∞ε  »«ΓÑp¿  ¿½¿  «íσ«ñá  ß¿ú¡á½«ó   »p«Γ«¬«½á   RS-232.
  382.      ìá¿í«½ÑÑ   ¡Ñ»p¿∩Γ¡δ¼¿  «Φ¿í¬á¼¿  ∩ó½∩εΓß∩  «Φ¿í¬¿,  ßó∩ºá¡¡δÑ  ß
  383.      »ÑpÑ»«½¡Ñ¡¿Ñ¼ pÑú¿ßΓpá (overrun error).
  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. â½áóá VI                                                     -- 8 --
  422.  
  423.  
  424.                        ÅàÉàÅÄïìàìêà ÉàâêæÆÉÇ-ÅÉêàîìêèÇ
  425.      -----------------------------------------------------------------
  426.  
  427.           àß½¿    ñ½∩   ß«Ññ¿¡Ñ¡¿∩    ñóπσ   »«ß½Ññ«óáΓѽ∞¡δσ   »«pΓ«ó
  428.      ¿ß»«½∞ºπεΓß∩  Γ«½∞¬«  Γp¿ ¼¿¬p«»p«úpá¼¼δ  (ß¿ú¡á½á), Γ« ó«º¡¿¬áÑΓ
  429.      ¡Ñ«íσ«ñ¿¼«ßΓ∞     ¿ß»«½∞º«óáΓ∞      ßó«Ñ«ípạδ⌐     "Γpε¬"     ß
  430.      »«pΓ«¼-¿ßΓ«τ¡¿¬«¼ ó »pÑñ»«½«ªÑ¡¿¿,  τΓ« »«pΓ-»p¿Ñ¼¡¿¬ πªÑ ú«Γ«ó ¬
  431.      »p¿Ñ¼π  ñá¡¡δσ.  ¥Γ«Γ "Γpε¬"  «íδτ¡« óδ»«½¡∩ÑΓß∩ »πΓѼ ß«Ññ¿¡Ñ¡¿∩
  432.      ó¼ÑßΓÑ 6,  8 ¿ 20 ΦΓδpÑ⌐ 25-ΦΓδpÑó«ú« páºΩѼá.  é ß½πτáÑ  ¡Ñπñáτ¿
  433.      φΓá  »p«µÑñπpá  »«ºó«½∩ÑΓ «í¡ápπª¿Γ∞ «Φ¿í¬π »ÑpÑ»«½¡Ñ¡¿∩ pÑú¿ßΓpá
  434.      ñá¡¡δσ ß í«½∞Φ«⌐ óÑp«∩Γ¡«ßΓ∞ε.  ä«»πßΓ¿¼ ΓÑ»Ñp∞,  τΓ« ¬«¼»∞εΓÑp Ç
  435.      í«½ÑÑ   »p«¿ºó«ñ¿Γѽ∞¡δ⌐,   τѼ   ¬«¼»∞εΓÑp  é.  àß½¿  á»»ápáΓ¡«Ñ
  436.      »«ñΓóÑpªñÑ¡¿Ñ ßó∩º¿ ¡Ñ ¿ß»«½∞ºπÑΓß∩,  á ¬«¼»∞εΓÑp Ç  »pÑñ»«½áúáÑΓ
  437.      »ÑpÑß佬π óΓ«p«ú« íá⌐Γá ß««íΘÑ¡¿∩ ó ¬«¼»∞εΓÑp é,  ó Γ« ópѼ∩, ¬á¬
  438.      ¬«¼»∞εΓÑp é óδ»«½¡∩ÑΓ τΓÑ¡¿Ñ ¿¡Σ«p¼áµ¿¿ ¿º pÑú¿ßΓpá óó«ñá ñá¡¡δσ,
  439.      Γ« íπñÑΓ ºápÑú¿ßΓp¿p«óá¡á «Φ¿í¬á "»ÑpÑ»«½¡Ñ¡¿Ñ pÑú¿ßΓpá" (oberrun
  440.      error). ÄΦ¿í¬á φΓ«ú« Γ¿»á íπñÑΓ ΓᬪѠºápÑú¿ßΓp¿p«óá¡á ñáªÑ, Ñß½¿
  441.      ¬«¼»∞εΓÑp é í«½ÑÑ »p«¿ºó«ñ¿Γѽ∞¡δ⌐ τѼ ¬«¼»∞εΓÑp Ç, ¡« »p«úpἡ«Ñ
  442.      «íÑß»ÑτÑ¡¿Ñ ¬«¼»∞εΓÑpá é ¼Ñ¡ÑÑ pÑá¬Γ¿ó¡«.
  443.  
  444.           ¥Γá »p«í½Ñ¼á ó«º¡¿¬áÑΓ »«Γ«¼π, τΓ« ΦΓδp¿ 6, 8 ¿ 20 ß«Ññ¿¡Ñ¡δ
  445.      ¿ »«pΓ-¿ßΓ«τ¡¿¬ ßτ¿ΓáÑΓ,  τΓ« »«pΓ-»p¿Ñ¼¡¿¬ óßÑúñá ú«Γ«ó ¬ »p¿Ñ¼π
  446.      ñá¡¡δσ.  è«p«τÑ,  óδ ßἿ ó¿ñ¿ΓÑ,  τΓ« φëà»πΓ∞ pÑΦÑ¡¿∩  »p«í½Ñ¼
  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. â½áóá VI                                                     -- 9 --
  482.  
  483.  
  484.                 äÄæÆôÅ è ÅÄæïàäÄéÇÆàï£ìÄîô ÅÄÉÆô èÄîÅ£₧ÆàÉÇ
  485.                                  ùàÉàç BIOS
  486.      -----------------------------------------------------------------
  487.  
  488.           è »«ß½Ññ«óáΓѽ∞¡«¼π »«pΓ𠬫¼»∞εΓÑp«ó ßѼÑ⌐ßΓóá PC,  á ΓᬪÑ
  489.      ß«ó¼ÑßΓ¿¼δσ ß ¡¿¼¿ ¼«ñѽÑ⌐ ¼«ª¡« »«½πτ¿Γ∞  ñ«ßΓπ» ¡Ñ»«ßpÑñßΓóÑ¡¡«
  490.      ¿º  DOS  τÑpѺ  Åçô-BIOS  ¿½¿  ó  «íσ«ñ  DOS  ¿  BIOS,  ¿ß»«½∞ºπ∩
  491.      ¡Ñ»«ßpÑñßΓóÑ¡¡«Ñ  π»páó½Ñ¡¿Ñ  á»»ápáΓ¡δ¼¿  ßpÑñßΓóἿ.  ä«ßΓπ»  ¬
  492.      »«ß½Ññ«óáΓѽ∞¡«¼π  »«pΓπ  τÑpѺ DOS ¡Ñ «τÑ¡∞ σ«p«Φá∩ ¿ñÑ∩ »«Γ«¼π,
  493.      τΓ«   DOS   ¡Ñ   »«ºó«½∩ÑΓ   «púá¡¿º«óáΓ∞   «ípáΓ¡«⌐   ßó∩º¿    ß
  494.      »«ß½Ññ«óáΓѽ∞¡δ¼  »«pΓ«¼  ñ½∩  á¡á½¿ºá  Ñú«  ΓѬπΘÑú« ß«ßΓ«∩¡¿∩ ¿
  495.      «púá¡¿ºπÑΓ ½¿Φ∞ ß½Ñ»«Ñ τΓÑ¡¿Ñ ¿ ºá»¿ß∞ ñá¡¡δσ ó »«pΓ.  è Γ«¼π  ªÑ
  496.      ¡ÑΓ ó«º¼«ª¡«ßΓ¿ ¿ß»«½∞º«óáΓ∞ ß¿ßΓѼπ »pÑpδóá¡¿⌐ DOS.  ìÑß¼«Γp∩ ¡á
  497.      Γ«,  τΓ« ó »pÑñδñπΘÑ⌐ ú½áóÑ íδ½á páßß¼«ΓpÑ¡á ó«º¼«ª¡«ßΓ∞  »p∩¼«ú«
  498.      á»»ápáΓ¡«ú«   π»páó½Ñ¡¿∩  ß¿ßΓѼ¡δ¼¿  pÑßπpßἿ,  φëà ¼ÑΓ«ñ  ¡Ñ
  499.      ∩ó½∩ÑΓß∩ »p¿Ñ¼½Ñ¼δ¼ ñ½∩ páí«Γδ ß »«ß½Ññ«óáΓѽ∞¡δ¼ »«pΓ«¼  ó ßó∩º¿
  500.      ß  ΓѼ,  τΓ«  ¡á¿í«½∞Φá∩  »p«¿ºó«ñ¿Γѽ∞¡«ßΓ∞  «ípáí«Γ¬¿ »«pΓá »p¿
  501.      ¿ß»«½∞º«óá¡¿¿ φΓ«ú« ¼ÑΓ«ñá ¼«ªÑΓ íδΓ∞  ñ«ßΓ¿ú¡πΓá  ½¿Φ∞  ºá  ßτÑΓ
  502.      »pÑpδóá¡¿⌐ Åçô-BIOS.
  503.  
  504.           ä«ßΓπ» ¿   «ípáí«Γ¬π  »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá  »«ññÑpª¿óáεΓ
  505.      τÑΓδpѠ߻ѵ¿á½∞¡δÑ πΓ¿½¿Γδ Åçô-BIOS.  Äípáí«Γ¬á »«ß½Ññ«óáΓѽ∞¡«ú«
  506.      »«pΓá  «ßπΘÑßΓó½∩ÑΓß∩  ¿¼¿  ß  »«¼«Θ∞ε  »pÑpδóá¡¿∩ 14H.  ÉáºíÑpѼ
  507.      »«ñp«í¡ÑÑ φëà¼ÑΓ«ñ.
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  541. â½áóá VI                                                     -- 10 --
  542.  
  543.  
  544.                             êìêûêÇïêçÇûꃠÅÄÉÆÇ
  545.      -----------------------------------------------------------------
  546.  
  547.           ÅÑpÑñ ¿ß»«½∞º«ó᡿Ѽ  »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá  óδ  ó«º¼«ª¡«
  548.      ºáσ«Γ¿ΓÑ πßΓá¡«ó¿Γ∞  Ñú«  ¡áτá½∞¡«Ñ  ß«ßΓ«∩¡¿Ñ,  «Γ½¿τáεΘÑÑß∩  «Γ
  549.      »p¿¡∩Γ«ú« »« π¼«½τá¡¿ε,  ¿½¿,  ñpπú¿¼¿ ß½«óἿ,  ¿¡¿µ¿á½¿º¿p«óáΓ∞
  550.      »«pΓ. (Å« π¼«½τá¡¿ε, »Ñpóδ⌐ »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ ¿¼ÑÑΓ ß½ÑñπεΘ¿Ñ
  551.      σápá¬ΓÑp¿ßΓ¿¬¿: ß¬«p«ßΓ∞ «í¼Ñ¡á - 1200 í«ñ, »p«óÑp¬á ¡á τÑΓ¡«ßΓ∞,
  552.      ßѼ∞ í¿Γ ñá¡¡δσ ¿ «ñ¿¡ ºáóÑpΦáεΘ¿⌐ í¿Γ).  ÅpÑpδóá¡¿Ñ 14ì, πΓ¿½¿Γá
  553.      0,   ¿ß»«½∞ºπÑΓß∩   ñ½∩  ¿¡¿µ¿á½¿ºáµ¿¿  »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá.
  554.      æ«ó¼ÑßΓ¡« ß ñpπú¿¼¿ »pÑpδóá¡¿∩¼¿ BIOS pÑú¿ßΓp Çì ¿ß»«½∞ºπÑΓß∩ ñ½∩
  555.      σpá¡Ñ¡¿∩  ¡«¼Ñpá  πΓ¿½¿Γδ.  ÉÑú¿ßΓp  ÇL ¿ß»«½∞ºπÑΓß∩ ñ½∩ σpá¡Ñ¡¿∩
  556.      »ápá¼ÑΓp«ó ¿¡¿µ¿á½¿ºáµ¿¿,  ¬«Γ«pδÑ ¬«ñ¿pπεΓß∩  ó  «ñ¡«¼  íá⌐ΓÑ  ó
  557.      ß½ÑñπεΘѼ »«p∩ñ¬Ñ:
  558.  
  559.                               ¡«¼Ñp í¿Γá: 7 6 5 4 3 2 1 0
  560.                                           ──┬── ─┬─ ┬ ─┬─
  561.                                             │    │  │  │
  562.        ß¬«p«ßΓ∞ »ÑpÑñáτ¿ (í«ñ) ─────────────┘    │  │  │
  563.        ¬«¡Γp«½∞ τÑΓ¡«ßΓ¿       ──────────────────┘  │  │
  564.        ¬«½¿τÑßΓó« ºáóÑpΦáεΘ¿σ í¿Γ«ó  ───────────────┘  │
  565.        ¬«½¿τÑßΓó« í¿Γ«ó ñá¡¡δσ ────────────────────────┘
  566.  
  567.  
  568.           æ¬«p«ßΓ∞  »ÑpÑñáτ¿  ñá¡¡δσ  ¬«ñ¿pπÑΓß∩   ó   ß««ΓóÑΓßΓó¿¿  ß
  569.      Γáí½¿µÑ⌐  6-1.  è«¡Γp«½∞  τÑΓ¡«ßΓ¿  ¬«ñ¿pπÑΓß∩  ó  ß««ΓóÑΓßΓó¿¿ ß
  570.      Γáí½¿µÑ⌐ 6-2.
  571.  
  572.  
  573.           Æáí½¿µá 6-1
  574.      -----------------------------------------------------------------
  575.           è«ñ¿p«ó᡿Ѡ߬«p«ßΓ¿ »ÑpÑñáτ¿ ó í¿Γáσ 7, 6 ¿ 5
  576.           íá⌐Γá ¿¡¿µ¿á½¿ºáµ¿¿ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá.
  577.  
  578.                  æ¬«p«ßΓ∞                Å«ß½Ññ«óáΓѽ∞¡«ßΓ∞ í¿Γ
  579.                  ────────                ──────────────────────
  580.                    9600                              1  1  1
  581.                    4800                              1  1  0
  582.                    2400                              1  0  1
  583.                    1200                              1  0  0
  584.                     600                              0  1  1
  585.                     300                              0  1  0
  586.                     150                              0  0  1
  587.                     110                              0  0  0
  588.      -----------------------------------------------------------------
  589.  
  590.           ù¿ß½« ºáóÑpΦáεΘ¿σ  í¿Γ«ó  «»pÑñѽ∩ÑΓß∩   º¡áτÑ¡¿Ñ¼   óΓ«α«ú«
  591.      αáºα∩ñá   íá⌐Γá   ¿¡¿µ¿á½¿ºáµ¿¿   »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá.  àß½¿
  592.      º¡áτÑ¡¿Ñ φΓ«ú« í¿Γá páó¡«  1,  Γ«  ¿ß»«½∞ºπεΓß∩  ñóá  ºáóÑpΦáεΘ¿σ
  593.      í¿Γá;  ó  »p«Γ¿ó¡«¼  ß½πτáÑ ¿ß»«½∞ºπÑΓß∩ «ñ¿¡ ºáóÑpΦáεΘ¿⌐ í¿Γ.  é
  594.      ¬«¡Ñτ¡«¼ ¿Γ«úÑ τ¿ß½« í¿Γ«ó ñá¡¡δσ ºáñáÑΓß∩ º¡áτÑ¡¿Ñ¼ í¿Γ ó »Ñpó«¼
  595.      ¿  ¡π½Ñó«¼  páºp∩ñáσ  íá⌐Γá  ¿¡¿µ¿á½¿ºáµ¿¿.  êº τÑΓδpÑσ º¡áτÑ¡¿⌐,
  596.      ¬«Γ«pδÑ ¼«úπΓ πßΓá¡áó½¿óáΓ∞ß∩ »«½∞º«óáΓѽѼ ó íá⌐ΓÑ ¿¡¿µ¿á½¿ºáµ¿¿
  597.      ñ½∩  π¬áºá¡¿∩ τ¿ß½á í¿Γ«ó ñá¡¡δσ,  ñ«»πßΓ¿¼δ¼¿ ∩ó½∩εΓß∩ ½¿Φ∞ ñóá.
  598.  
  599.  
  600.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  601. â½áóá VI                                                     -- 11 --
  602.  
  603.  
  604.      àß½¿  í¿Γδ  ó  »Ñpó«¼  ¿  ¡π½Ñó«¼  páºp∩ñáσ  íá⌐Γá  ¿¡¿µ¿á½¿ºáµ¿¿
  605.      «ípáºπεΓ   »«ß½Ññ«óáΓѽ∞¡«ßΓ∞  "1  0",  Γ«  ñ½∩  »ÑpÑñáτ¿  ñá¡¡δσ
  606.      ¿ß»«½∞ºπÑΓß∩  ßѼ∞  í¿Γ.  àß½¿  í¿Γδ  ó  φΓ¿σ  páºp∩ñáσ  «ípáºπεΓ
  607.      »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ "1 1", Γ« ¿ß»«½∞ºπÑΓß∩ ó«ßѼ∞ í¿Γ ñá¡¡δσ.
  608.  
  609.  
  610.           Æáí½¿µá 6-2
  611.      -----------------------------------------------------------------
  612.           è«ñ¿p«óá¡¿Ñ τÑΓ¡«ßΓ¿ ó í¿Γáσ 4 ¿ 3
  613.           íá⌐Γá ¿¡¿µ¿á½¿ºáµ¿¿ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá
  614.  
  615.                é¿ñ ¬«¡Γp«½∩             Å«ß½Ññ«óáΓѽ∞¡«ßΓ∞ í¿Γ
  616.                ────────────             ──────────────────────
  617.                ¬«¡Γp«½∞ «Γ¼Ñ¡Ñ¡              0 0  ¿½¿  1 0
  618.                »p«óÑp¬á ¡á ¡ÑτÑΓ¡«ßΓ∞        0 1
  619.                »p«óÑp¬á ¡á τÑΓ¡«ßΓ∞          1 1
  620.      -----------------------------------------------------------------
  621.  
  622.           ìá»p¿¼Ñp, Ñß½¿ óδ σ«Γ¿ΓÑ πßΓá¡«ó¿Γ∞ ß¬«p«ßΓ∞ »ÑpÑñáτ¿ ñá¡¡δσ
  623.      ñ½∩ »«pΓá 9600  í«ñ, »p«óÑp¬π ¡á τÑΓ¡«ßΓ∞, «ñ¿¡ ºáóÑpΦáεΘ¿⌐ í¿Γ ¿
  624.      ó«ßѼ∞  í¿Γ   ñ½∩   ñá¡¡δσ,   óδ  ñ«½ª¡δ  πßΓá¡«ó¿Γ∞   ó¿ñ  íá⌐Γá
  625.      ¿¡¿µ¿á½¿ºáµ¿¿   á¡á½«ú¿τ¡«   »p¿óÑñÑ¡¡«¼π   ¡¿ªÑ.   é  ñÑß∩Γ¿τ¡«¼
  626.      »pÑñßΓáó½Ñ¡¿¿ º¡áτÑ¡¿Ñ íá⌐Γá ¿¡¿µ¿á½¿ºáµ¿¿ páó¡« 251.
  627.  
  628.                                     1  1  1  1 1  0  1 1
  629.                                     ───┬───  ─┬─  ┬  ─┬─
  630.           ß¬«p«ßΓ∞ »ÑpÑñáτ¿ (í«ñ) ─────┘      │   │   │
  631.           ó¿ñ ¬«¡Γp«½∩ τÑΓ¡«ßΓ¿   ────────────┘   │   │
  632.           ¬«½¿τÑßΓó« ºáóÑpΦáεΘ¿σ í¿Γ«ó ───────────┘   │
  633.           ¬«½¿τÑßΓó« í¿Γ«ó ñá¡¡δσ ────────────────────┘
  634.  
  635.           æΓá¡ñápΓ PC »pÑñπß¼áΓp¿óáÑΓ ¡á½¿τ¿Ñ ñ« ßѼ¿ »«ß½Ññ«óáΓѽ∞¡δσ
  636.      »«pΓ«ó  (ó  ¡«óδσ  Γ¿»áσ  ¼áΦ¿¡  ¿σ  º¡áτ¿Γѽ∞¡«   í«½∞ΦÑ).   ä½∩
  637.      ß»Ñµ¿Σ¿¬áµ¿¿   ¡«¼Ñpá   »«pΓá  ¿ß»«½∞ºπÑΓß∩  pÑú¿ßΓp  DX.  ÅÑpóδ⌐
  638.      »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ ¿¼ÑÑΓ ¡«¼Ñp 0,  óΓ«p«⌐ - 1 ¿ Γ. ñ. öπ¡¬µ¿∩,
  639.      »pÑñßΓáó½Ñ¡¡á∩  ¡¿ªÑ,  ¿¼ÑεΘá∩  ¿¼∩ int_port(),  ¿ß»«½∞ºπÑΓß∩ ñ½∩
  640.      ¿¡¿µ¿á½¿ºáµ¿¿ º¡áτÑ¡¿⌐ pẽ¿τ¡δσ »«pΓ«ó ß¿ßΓѼδ.
  641.  
  642.      /* ê¡¿µ¿á½¿ºáµ¿∩ »«αΓá */
  643.      void port_init(port, code)
  644.      int port;
  645.      unsigned char code;
  646.  
  647.      {
  648.        union REGS r;
  649.  
  650.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  651.        r.h.ah = 0;    /* Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿ »«pΓá */
  652.        r.h.al = code; /* ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿ - ß¼. ΓѬßΓ */
  653.        int86(0x14, &r, &r);
  654.      }
  655.  
  656.  
  657.           ¥Γá Σπ¡¬µ¿∩  ¿ß»«½∞ºπÑΓ  Σπ¡¬µ¿ε   int86(),   »«ññÑpª¿óáѼπε
  658.  
  659.  
  660.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  661. â½áóá VI                                                     -- 12 --
  662.  
  663.  
  664.      í«½∞Φ¿¡ßΓó«¼ ¬«¼»¿½∩Γ«p«ó,  ó¬½ετá∩ Æπαí« æ¿ ¿ MicroSoft C.  àß½¿
  665.      óδ ¿ß»«½∞ºπÑΓÑ ¬«¼»¿½∩Γ«p,  úñÑ int86() ¡Ñ «»pÑñѽѡá,  Γ« ó¼ÑßΓ«
  666.      ¡ÑÑ  ¼«ªÑΓ íδΓ∞ óóÑñÑ¡« ¡ÑτΓ« (Ñß½¿ »«½∞º«óáΓѽ∞ ßá¼ ¡Ñ «»pÑñѽ¿½
  667.      φΓπ Σπ¡¬µ¿ε),  τΓ« ¼«ªÑΓ »p¿óÑßΓ¿ ¬ «Φ¿í¬Ñ. óδ ¼«ªÑΓÑ páºpáí«ΓáΓ∞
  668.      ßó«ε  ß»Ñµ¿á½∞¡πε  Σπ¡¬µ¿ε ¿¡¿µ¿á½¿ºáµ¿¿ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá.
  669.      (Æá¬   ó   Æπαí«   æ¿   ÑßΓ∞   Σπ¡¬µ¿∩   bioscom(),   »«ºó«½∩εΘá∩
  670.      ¿¡¿µ¿á½¿º¿p«óáΓ∞ »«pΓ).
  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. â½áóá VI                                                     -- 13 --
  722.  
  723.  
  724.                               ÅàÉàäÇùÇ üÇëÆÄé
  725.      -----------------------------------------------------------------
  726.  
  727.           ÅpÑpδóá¡¿Ñ BIOS 14H,  πΓ¿½¿Γá 1  ¿ß»«½∞ºπÑΓß∩  ñ½∩  »ÑpÑñáτ¿
  728.      «ñ¡«ú«    íá⌐Γá    ¿¡Σ«p¼áµ¿¿    τÑpѺ   »«ß½Ññ«óáΓѽ∞¡δ⌐   »«pΓ,
  729.      ß»Ñµ¿Σ¿µ¿p«óá¡¡δ⌐  ß«ñÑpª¿¼δ¼  pÑú¿ßΓpá  DX.  ÅÑpÑßδ½áѼδ⌐   íá⌐Γ
  730.      ñ«½ªÑ¡  ß«ñÑpªáΓ∞ß∩  ó  pÑú¿ßΓpÑ AL.  æ«ßΓ«∩¡¿Ñ »p«µÑßßá »ÑpÑñáτ¿
  731.      ó«ºópáΘáÑΓß∩ ó pÑú¿ßΓp AH. öπ¡¬µ¿∩ sport() , »pÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ,
  732.      »ÑpÑñáÑΓ «ñ¿¡ íá⌐Γ ¿º ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá.
  733.  
  734.      /* ÅÑpÑñáτá ß¿¼ó«½á ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  735.      void sport(port, c)
  736.      int port;                 /* »«pΓ óó«ñá/óδó«ñá */
  737.      char c;                   /* »ÑpÑñáóáѼδ⌐ ß¿¼ó«½ */
  738.      {
  739.        union REGS r;
  740.        r.x.dx = port;          /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  741.        r.h.al = c;             /* »ÑpÑñáóáѼδ⌐ ß¿¼ó«½ */
  742.        r.h.ah = 1;             /* »ÑpÑß佬á ß¿¼ó«½á Σπ¡¬µ¿¿ */
  743.        int86(0x14, &r, &r);
  744.        if(r.h.ah & 128) {      /* ¬«¡Γp«½∞ 7-ú« í¿Γá */
  745.          printf("«í¡ápπªÑ¡á «Φ¿í¬á »ÑpÑñáτ¿ ó ");
  746.          printf("»«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ");
  747.          exit(1);
  748.        }
  749.      }
  750.  
  751.           àß½¿ í¿Γ 7 pÑú¿ßΓpá Çì  »«½πτ¿½  º¡áτÑ¡¿Ñ  »«ß½Ñ  óδ»«½¡Ñ¡¿∩
  752.      »pÑpδóá¡¿∩  BIOS,  Γ« pÑú¿ßΓp¿pπÑΓß∩ «Φ¿í¬á »ÑpÑñáτ¿ ñá¡¡δσ.  ä½∩
  753.      «»pÑñѽѡ¿∩ »p¿τ¿¡δ «Φ¿í¬¿ óδ ñ«½ª¡δ ßτ¿ΓáΓ∞ ß«ßΓ«∩¡¿Ñ »«pΓá; ¬á¬
  754.      φΓ« ßñѽáΓ∞ «íßπªñáÑΓß∩ ¡¿ªÑ. ìÑß¼«Γp∩ ¡á Γ«, τΓ« Σπ¡¬µ¿∩ sport()
  755.      »p¿  «í¡ápπªÑ¡¿¿  «Φ¿í¬¿  »pѬpáΘáÑΓ  ßó«ε  páí«Γπ,   óδ   ¼«ªÑΓÑ
  756.      ß«σpá¡¿Γ∞ ¬«ñ «Φ¿í¬¿ ó π»páó½∩εΘÑ⌐ »p«úpá¼¼Ñ,  á ºáΓѼ, «»pÑñѽ¿ó
  757.      Γ¿» «Φ¿í¬¿,  »pÑñπß¼«ΓpÑΓ∞ «»pÑñѽѡ¡δÑ ñÑ⌐ßΓó¿∩ »« ÑÑ «ípáí«Γ¬Ñ.
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  781. â½áóá VI                                                     -- 14 --
  782.  
  783.  
  784.                           èÄìÆÉÄæÄæÆÄƒìꃠÅÄÉÆÇ
  785.      -----------------------------------------------------------------
  786.  
  787.           ÅpÑpδóá¡¿Ñ BIOS  14H,  πΓ¿½¿Γá  3  ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¬«¡Γp«½∩
  788.      ß«ßΓ«∩¡¿∩ »«pΓá.  ôΓ¿½¿Γá «púá¡¿ºπÑΓ  ¬«¡Γp«½∞  ß«ßΓ«∩¡¿∩  »«pΓá,
  789.      ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú«  ß«ñÑpª¿¼δ¼  pÑú¿ßΓpá  DX.  Å«ß½Ñ  ó«ºópáΓá ¿º
  790.      ß«ßΓ«∩¡¿∩,  «»pÑñѽ∩Ñ¼δ¼ »pÑpδó᡿Ѽ,  pÑú¿ßΓpδ  Çì  ¿  AL  íπñπΓ
  791.      ß«ñÑpªáΓ∞  º¡áτÑ¡¿∩,  «»pÑñѽ∩εΘ¿Ñ  ó ß««ΓóÑΓßΓó¿¿ ß Æáí½¿µÑ⌐ 6-3
  792.      ΓѬπΘÑÑ ß«ßΓ«∩¡¿Ñ »«pΓá »«ß½Ñ óδ»«½¡Ñ¡¿∩ »pÑpδóá¡¿∩ BIOS.
  793.  
  794.           Æáí½¿µá 6-3
  795.      -----------------------------------------------------------------
  796.           üá⌐Γδ ß«ßΓ«∩¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá
  797.      -----------------------------------------------------------------
  798.           æ«ßΓ«∩¡¿Ñ ¬á¡á½á ßó∩º¿ ( Çì )
  799.           ç¡áτÑ¡¿Ñ, πßΓá¡áó½¿óáεΘÑÑ í¿Γ                         ü¿Γ
  800.  
  801.           â«Γ«ó¡«ßΓ∞ ñá¡¡δσ                                     0
  802.           ÄΦ¿í¬á »ÑpÑ»«½¡Ñ¡¿∩                                   1
  803.           ÄΦ¿í¬á ¬«¡Γp«½∩ τÑΓ¡«ßΓ¿                              2
  804.           ÄΦ¿í¬á ¬«ñ¿p«óá¡¿∩                                    3
  805.           ÄΦ¿í¬á »p¿ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ »pÑpδóá¡¿∩                   4
  806.           ÉÑú¿ßΓp ¡á¬«»½Ñ¡¿∩ »ÑpÑñáóáѼδσ ñá¡¡δσ                5
  807.           ÉÑú¿ßΓp ßñó¿úá »ÑpÑñáτ¿ »πßΓ                          6
  808.           éδσ«ñ ºá ñ«»πßΓ¿¼δ⌐ ¿¡ΓÑpóá½ ópѼѡ¿                  7
  809.  
  810.  
  811.  
  812.           æ«ßΓ«∩¡¿Ñ ¼«ñѼá ( AL )
  813.           ç¡áτÑ¡¿Ñ, πßΓá¡áó½¿óáεΘÑÑ í¿Γ                         ü¿Γ
  814.  
  815.           ê߬áªÑ¡¿Ñ ó «τ¿ßΓ¬Ñ-ñ½∩-»«ß佬¿                       0
  816.           ê߬áªÑ¡¿Ñ ó ¡áí«pÑ-ñá¡¡δσ-ú«Γ«ó                       1
  817.           Äí¡ápπªÑ¡ ºáñ¡¿⌐ Σp«¡Γ ¬«½∞µÑó«ú« ¿¼»π½∞ßá            2
  818.           ê߬áªÑ¡¿Ñ ß¿ú¡á½á ó ¬á¡á½Ñ ßó∩º¿                      3
  819.           Äτ¿ßΓ¬á-ñ½∩-»«ß佬¿                                   4
  820.           ìáí«p-ñá¡¡δσ-ú«Γ«ó                                    5
  821.           Åp¿º¡á¬ ¬«½∞µá                                        6
  822.           çáΣ¿¬ß¿p«óá¡ ß¿ú¡á½ «Γ ¬á¡á½á ßó∩º¿                   7
  823.      -----------------------------------------------------------------
  824.  
  825.           èᬠóδ  ¼«ªÑΓÑ ó¿ñÑΓ∞,  ¿º ¼¡«ú««ípế∩ pẽ¿τ¡δσ ß«ßΓ«∩¡¿⌐,
  826.      á¡á½¿º¿pπѼδσ »p¿  ¿ß»«½∞º«óá¡¿¿  ¼«ñѼá,  ó  ß½πτáÑ  «íÑß»ÑτÑ¡¿∩
  827.      ßó∩º¿  »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá  ß  ¬á¬¿¼-½¿í«  ¿¡δ¼ πßΓp«⌐ßΓó«¼,
  828.      ¿ß»«½∞ºπεΓß∩ ½¿Φ∞ ¡á¿í«½ÑÑ ó᪡δÑ,  á ¡Ñ  óÑß∞  »pÑñßΓáó½Ñ¡¡δ⌐  ó
  829.      Æáí½¿µÑ   6-3  ¡áí«p  ß«ßΓ«∩¡¿⌐.  Äñ¡á¬«,  «ñ¡«  ¿º  ß«ßΓ«∩¡¿⌐  -
  830.      "ú«Γ«ó¡«ßΓ∞  ñá¡¡δσ"  ∩ó½∩ÑΓß∩  τpѺóδτá⌐¡«  ó᪡δ¼.   Ç¡á½¿º¿pπ∩
  831.      »p«µÑßß  »ÑpÑñáτ¿  ñá¡¡δσ  ¡á  ó«º¡¿¬¡«óÑ¡¿Ñ φΓ«ú« ß«ßΓ«∩¡¿∩,  óδ
  832.      ¼«ªÑΓÑ «»pÑñѽ¿Γ∞,  ¬á¬¿Ñ ¬«¡¬pÑΓ¡« íá⌐Γδ  ñá¡¡δσ  í뫨  »«½πτÑ¡δ
  833.      »«pΓ«¼  ¿  ú«Γ«óδ ñ½∩ τΓÑ¡¿∩.  öπ¡¬µ¿∩ rport() ¿ß»«½∞ºπÑΓ ñá¡¡δÑ,
  834.  
  835.      ßτ¿ΓδóáѼδÑ Ñε ß »«pΓá.  ìá »p¿¼ÑpÑ φΓ«⌐ Σπ¡¬µ¿¿ »«¬áºá¡«,  ¬á¬¿¼
  836.      «ípẫ¼  ¿ß»«½∞ºπÑΓß∩  ó«º¼«ª¡«ßΓ∞  á¡á½¿ºá ß«ßΓ«∩¡¿∩ "ú«Γ«ó¡«ßΓ∞
  837.      ñá¡¡δσ". êΓá¬, »ÑpÑ⌐ñѼ ¬ ß½ÑñπεΘѼπ páºñѽπ ú½áóδ.
  838.  
  839.  
  840.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  841. â½áóá VI                                                     -- 15 --
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  901. â½áóá VI                                                     -- 16 --
  902.  
  903.  
  904.                                 ÅÉêàî üÇëÆÄé
  905.      -----------------------------------------------------------------
  906.  
  907.           ÅpÑpδóá¡¿Ñ BIOS  14H,  πΓ¿½¿Γá  3  ¿ß»«½∞ºπÑΓß∩  ñ½∩  τΓÑ¡¿∩
  908.      íá⌐Γ«ó ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá.  ì«¼Ñp »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá
  909.      »pÑñóáp¿Γѽ∞¡«  ß»Ñµ¿Σ¿µ¿pπÑΓß∩  ß«ñÑpª¿¼δ¼  pÑú¿ßΓpá  DX.  Å«ß½Ñ
  910.      óδσ«ñá ¿º ß«ßΓ«∩¡¿∩,  «»pÑñѽ∩Ѽ«ú« »pÑpδó᡿Ѽ  BIOS,  «τÑpÑñ¡«⌐
  911.      ß¿¼ó«½  ßτ¿ΓδóáÑΓß∩  ó  pÑú¿ßΓp  AL.  Å«ß½Ñ  »ÑpÑñáτ¿  ß¿¼ó«½á  ¿
  912.      ßτ¿Γδóá¡¿∩ Ñú« ó pÑú¿ßΓp AL í¿Γ 7  pÑú¿ßΓpá  Aì  ß¿ú¡á½¿º¿pπÑΓ  «
  913.      pѺπ½∞ΓáΓÑ  óδ»«½¡Ñ¡¿∩  «»Ñpᵿ¿ »«½πτÑ¡¿∩-τΓÑ¡¿∩ ß¿¼ó«½á («Φ¿í¬á
  914.      ¿½¿ ¡«p¼á).
  915.  
  916.           öπ¡¬µ¿∩ rport(), »pÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ, óδ»«½¡∩ÑΓ τΓÑ¡¿Ñ íá⌐Γá
  917.      ¿º ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá.
  918.  
  919.  
  920.      /* ùΓÑ¡¿Ñ ß¿¼ó«½á ¿º »«pΓá */
  921.      rport(port)
  922.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  923.      {
  924.        union REGS r;
  925.        /* Äª¿ñá¡¿Ñ »p¿σ«ñá ß¿¼ó«½á */
  926.        while(!(check_stat(PORT)&256))
  927.        if(kbhit()) { /* óδσ«ñ »« »pÑpδóá¡¿ε «Γ ¬½áó¿áΓπpδ */
  928.          getch();
  929.          exit(1);
  930.        }
  931.      r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  932.      r.h.ah = 2;    /* ¡«¼Ñp Σπ¡¬µ¿¿ τΓÑ¡¿∩ */
  933.      int86(0x14, &r, &r);
  934.      if(r.h.ah & 128)
  935.        printf("ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ «í¡ápπªÑ¡á «Φ¿í¬á τΓÑ¡¿∩");
  936.      return r.h.al;
  937.      }
  938.  
  939.  
  940.           ÅpÑpδóá¡¿Ñ ñ½∩  τΓÑ¡¿∩  ñá¡¡δσ  ¿º  »«pΓá  ¡Ñ   ¿¡¿µ¿¿pπÑΓß∩
  941.      ß¿ßΓѼ«⌐  ñ«  ΓÑσ  »«p,  »«¬á  «τÑpÑñ¡«⌐  íá⌐Γ  ¡Ñ  íπñÑΓ »«½πτÑ¡
  942.  
  943.      »«ß½Ññ«óáΓѽ∞¡δ¼ »«pΓ«¼,  ¿ ¿¡¿µ¿¿pπÑΓß∩ ñ« Γ«ú«,  ¬á¬ íá⌐Γ íπñÑΓ
  944.      »«ΓÑp∩¡  pÑú¿ßΓp«¼.  Å«φΓ«¼π ¡á¿í«½ÑÑ Γ¿»¿τ¡«⌐ «Φ¿í¬«⌐ »p¿ τΓÑ¡¿¿
  945.      íá⌐Γá ∩ó½∩ÑΓß∩ «ΓßπΓßΓó¿Ñ ¬«¡Γá¬Γá ß ¬á¡á½«¼ ßó∩º¿,  τΓ« »p¿ó«ñ¿Γ
  946.      ¬ ºáó¿ßá¡¿ε ¬«¼»∞εΓÑpá. ä½∩ pÑΦÑ¡¿∩ φΓ«⌐ »p«í½Ñ¼δ Σπ¡¬µ¿∩ rport()
  947.      á¡á½¿º¿pπÑΓ ß«ßΓ«∩¡¿Ñ ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« »«pΓá, »p«óÑp∩∩ º¡áτÑ¡¿Ñ
  948.      í¿Γá,  ¿¡ñ¿µ¿pπεΘÑú«  ú«Γ«ó¡«ßΓ∞  ñá¡¡δσ.  é  Γ« ªÑ ópѼ∩ Σπ¡¬µ¿∩
  949.      kbhit() ¬«¡Γp«½¿pπÑΓ »«ßΓπ»½Ñ¡¿Ñ »pÑpδóá¡¿∩ «Γ  ¬½áó¿áΓπpδ.  àß½¿
  950.      íδ½á  ¡áªáΓá ¬½áó¿Φá,  Γ« Σπ¡¬µ¿∩ rport() »pѬpáΘáÑΓ ßó«ε páí«Γπ.
  951.      (óδ ¼«ªÑΓÑ »pÑñπß¼«ΓpÑΓ∞ ó p∩ñÑ ß½πτáÑó óδº«ó  ¬á¬«⌐-½¿í« Σπ¡¬µ¿¿
  952.      ñ½∩  «ípáí«Γ¬¿  Γᬫ⌐  ß¿Γπᵿ¿).  êß»«½∞º«óá¡¿Ñ  Σπ¡¬µ¿¿ kbhit()
  953.      »«ºó«½∩ÑΓ »«½πτ¿Γ∞ ó«º¼«ª¡«ßΓ∞ »pѬpáΘÑ¡¿∩ páí«Γδ Σπ¡¬µ¿¿ rport()
  954.      ó  ß½πτáÑ,  Ñß½¿  »«½πτÑ¡¿Ñ  ñá¡¡δσ  »«pΓ«¼ ¡Ñ󫺼«ª¡« ¿,  ó ßó«ε
  955.      «τÑpÑñ∞,  »pÑñ«ΓópáΓ¿Γ∞ ºáó¿ßá¡¿Ñ ¬«¼»∞εΓÑpá.  èá¬ Γ«½∞¬«  ñá¡¡δÑ
  956.      »«½πτÑ¡δ,  ¿¡¿µ¿¿pπÑΓß∩  »pÑpδóá¡¿Ñ 14ì,  πΓ¿½¿Γá 2,  ¿ «τÑpÑñ¡«⌐
  957.      íá⌐Γ ßτ¿ΓδóáÑΓß∩ Σπ¡¬µ¿Ñ⌐ ¿º »«pΓá,  »«ß½Ñ τÑú« á¡á½¿º¿pπÑΓß∩ í¿Γ
  958.  
  959.  
  960.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  961. â½áóá VI                                                     -- 17 --
  962.  
  963.  
  964.      7  pÑú¿ßΓpá  Çì ¡á »pÑñ¼ÑΓ pѺπ½∞ΓáΓá óδ»«½¡Ñ¡¿∩ «»Ñpᵿ¿ («Φ¿í¬á
  965.      ¿½¿  ¡«p¼á).  é  ¬«¡Ñτ¡«¼  ¿Γ«úÑ,  ßτ¿Γá¡¡δ⌐  íá⌐Γ   ó«ºópáΘáÑΓß∩
  966.      Σπ¡¬µ¿Ñ⌐ ó óδºδóáεΘπε »p«úpá¼¼π.
  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. â½áóá VI                                                     -- 18 --
  1022.  
  1023.  
  1024.                      ÅàÉàäÇùÇ öÇëïÄé îàåäô èÄîÅ£₧ÆàÉÇîê
  1025.      -----------------------------------------------------------------
  1026.  
  1027.           æÑú«ñ¡∩ ¼¡«ú¿Ñ «púá¡¿ºáµ¿¿ ¿  τáßΓ¡δÑ  ½¿µá  ¿¼ÑεΓ  ó  ßó«Ñ¼
  1028.      páß»«p∩ªÑ¡¿¿  ¡Ñ߬«½∞¬« ¬«¼»∞εΓÑp«ó,  »p¿τѼ τáßΓ« φΓ¿ ¬«¼»∞εΓÑpδ
  1029.      «¬áºδóáεΓß∩ pạδσ  Γ¿»«ó  ¿½¿  pạδσ  ¼«ñѽÑ⌐,  á  ΓᬪѠ ¿¼ÑεΓ
  1030.      ¡Ñß«ó¼ÑßΓ¿¼δÑ  Σ«p¼áΓδ  ñ¿ß¬«ó.  Há»p¿¼Ñp  3.5  ñε⌐¼«óδÑ  ñ¿ß¬ÑΓδ
  1031.      ß¿ßΓѼδ PS/2 ¡Ñß«ó¼ÑßΓ¿¼δ ß 5.5 ñε⌐¼«ó묨 ñ¿ß¬ÑΓἿ  í«½ÑÑ pá¡¡¿σ
  1032.      ¼«ñѽÑ⌐ ¬«¼»∞εΓÑp«ó IBM - PC, XT, AT. Åp¿ ¿ß»«½∞º«óá¡¿¿ pẽ¿τ¡δσ
  1033.      ¬«¼»∞εΓÑp«ó  í«½∞Φ«Ñ  »pÑ¿¼πΘÑßΓó«  ¼«ªÑΓ  íδΓ∞  ñ«ßΓ¿ú¡πΓ«   »p¿
  1034.      ß«Ññ¿¡Ñ¡¿¿  ¬«¼»∞εΓÑp«ó  τÑpѺ  ¿σ »«ß½Ññ«óáΓѽ∞¡δÑ »«pΓδ ß µÑ½∞ε
  1035.      ß«ó¼ÑßΓ¡«ú«  ¿ß»«½∞º«óá¡¿∩  ¿¼¿  ¿¡Σ«p¼áµ¿¿  ¿/¿½¿  »p«úpá¼¼.  é«
  1036.      ¼¡«ú¿σ  ß½πτá∩σ  ß«ºñá¡¿Ñ »p«úpá¼¼,  «íÑß»Ñτ¿óáεΘ¿σ «í¼Ñ¡ Σá⌐½á¼¿
  1037.      ñ½∩ Γá¬¿σ ¬«¼»∞εΓÑp«ó τÑpѺ ¿σ »«ß½Ññ«óáΓѽ∞¡δÑ  »«pΓδ,  ∩ó½∩ÑΓß∩
  1038.      »p«í½Ñ¼áΓ¿τ¡δ¼.
  1039.           Äñ¡á¬« ßπΘÑßΓóπÑΓ  ñ«ó«½∞¡«  íδßΓp«ñÑ⌐ßΓóπεΘá∩ ¿ φΣΣÑ¬Γ¿ó¡á∩
  1040.      »p«úpἼᠻÑpÑñáτ¿ Σá⌐½«ó. ¥Γá »p«úpἼᠻ«ñp«í¡« páßß¼áΓp¿óáÑΓß∩
  1041.      ó  φΓ«⌐ ú½áóÑ;  «¡á «í½áñáÑΓ p∩ñ«¼ º¡áτ¿Γѽ∞¡δσ »pÑ¿¼πΘÑßΓó:  «¡á
  1042.      páí«ΓáÑΓ ß  ½εí묨  Γ¿»á¼¿  Σá⌐½«ó  ¡á  óßÑσ  Γ¿»áσ  ¬«¼»∞εΓÑp«ó,
  1043.      ¬«Γ«pδÑ    ÑßΓÑßΓóÑ¡¡«    «Γ½¿τáεΓß∩    ñpπú   «Γ   ñpπúá   ßó«Ñ⌐
  1044.      »p«¿ºó«ñ¿Γѽ∞¡«ßΓ∞ε ¿,  ßἫѠú½áó¡«Ñ,  ¡Ñ ¿ß»«½∞ºπεΓ á»»ápáΓ¡«ú«
  1045.      »«ñΓóÑpªñÑ¡¿∩  ßó∩º¿.  Å«ß½Ññ¡∩∩  «ß«íÑ¡¡«ßΓ∞ »p«úpá¼¼δ »«ºó«½∩ÑΓ
  1046.      ¿ß»«½∞º«óáΓ∞ ΓpÑσª¿½∞¡δ⌐ ¬áíѽ∞.  é ñ«íá󫬠¬«  óßѼπ,  »p«úpá¼¼á
  1047.      ¼«ªÑΓ páí«ΓáΓ∞ ñáªÑ Γ«úñá, ¬«úñá á»»ápáΓ¡«Ñ »«ñΓóÑpªñÑ¡¿Ñ ßó∩º¿ ó
  1048.      »p¿¡µ¿»Ñ ¡Ñ󫺼«ª¡« ¿ íÑß»«½Ñº¡«.
  1049.  
  1050.           ì« óßÑ páó¡« óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ á»»ápáΓ¡«Ñ »«ñΓóÑpªñÑ¡¿Ñ
  1051.      ßó∩º¿  »«Γ«¼π,  τΓ«  φΓ«  »«ºó«½∩ÑΓ ñ«ßΓ¿τ∞ í«½ÑÑ óδß«¬«ú« πp«ó¡∩
  1052.      »p«¿ºó«ñ¿Γѽ∞¡«ßΓ¿ ¿ ¡áñѪ¡«ßΓ¿ ¡ÑªÑ½¿ «púá¡¿ºáµ¿∩ óºá¿¼«ñÑ⌐ßΓó¿∩
  1053.      ¬«¼»∞εΓÑp«ó  íѺ  ¡Ñú«.  ¥Γ«  ßó∩ºá¡«  ß ΓѼ,  τΓ« ñ«ó«½∞¡« τáßΓ«
  1054.      úÑ¡Ñpᵿ∩ ß»Ñµ¿á½∞¡δσ ß¿ú¡á½«ó »p«úpá¼¼«⌐ ºáΓpπñ¡Ñ¡á ¿ »p«úpá¼¼¡«
  1055.      pÑ὿º«óá¡¡δÑ  ß¿ú¡á½δ  τáßΓ«  »pÑΓÑp»ÑóáεΓ  ¿ß¬áªÑ¡¿∩,  á  ΓᬪÑ
  1056.      ºáτáßΓπε  íÑß»«½Ñº¡δ  ó««íΘÑ.  ¥Γá  ß¿Γπᵿ∩   (»p¿   «íΩÑñ¿¡Ñ¡¿¿
  1057.      ¬«¼»∞εΓÑp«ó)  íπñÑΓ  ßπΘÑßΓó«óáΓ∞  ÑΘÑ  «τÑó¿ñ¡«  ñ«ó«½∞¡« ñ«½ú«,
  1058.      ∩ó½∩∩ß∞ ó Γ« ªÑ ópѼ∩ ñ«ßΓáΓ«τ¡« «íΘÑ⌐.
  1059.  
  1060.           Å«ñ»p«úpá¼¼δ »ÑpÑñáτ¿   Σá⌐½«ó   óδ»«½¡∩εΓ   ßó«¿   Σπ¡¬µ¿¿,
  1061.      ¿ß»«½∞ºπ∩   »p«úpá¼¼¡«Ñ   »«ñΓóÑpªñÑ¡¿Ñ  ßó∩º¿,  ¿  Σπ¡¬µ¿«¡¿pπεΓ
  1062.      Σá¬Γ¿τÑ߬¿ ó pẽ¿τ¡δσ  ßpÑñáσ.  Äñ¡á¬«  ñ½∩  pÑΦÑ¡¿∩  ú½«íá½∞¡«⌐
  1063.      »p«í½Ñ¼δ   ½πτΦÑ   »«ªÑpΓó«óáΓ∞   »p«¿ºó«ñ¿Γѽ∞¡«ßΓ∞ε,   πóѽ¿τ¿ó
  1064.      ¡áñѪ¡«ßΓ∞ ß¿ßΓѼδ.
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1081. â½áóá VI                                                     -- 19 --
  1082.  
  1083.  
  1084.                       ÅÉÄâÉÇîîìÄà ÅÄäÆéàÉåäàìêà æéƒçê
  1085.      -----------------------------------------------------------------
  1086.  
  1087.           è«úñá á»»ápáΓ¡«Ñ    »«ñΓóÑpªñÑ¡¿Ñ   ßó∩º¿   ¡Ñ󫺼«ª¡«   ¿½¿
  1088.      íÑß»«½Ñº¡«,  Ññ¿¡ßΓóÑ¡¡δ¼ ß»«ß«í«¼,  »«ºó«½∩εΘ¿¼ ¿ºíѪáΓ∞  «Φ¿í«¬
  1089.      »ÑpÑ»«½¡Ñ¡¿∩  pÑú¿ßΓpá,  ¬«Γ«pδÑ  ¡Ñ  ¼«úπΓ  íδΓ∞ ºápÑú¿ßΓp¿«óá¡δ
  1090.      ¡Ñ»«ßpÑñßΓóÑ¡¡«  ó«  ópѼ∩  »ÑpÑñáτ¿  ñá¡¡δσ  »«  ¬á¡á½π   ßó∩º¿,
  1091.      ∩ó½∩ÑΓß∩  óóÑñÑ¡¿Ñ »p«úpá¼¼¡«ú« »«ñΓóÑpªñÑ¡¿∩ ßó∩º¿.  Åp«úpá¼¼¡«Ñ
  1092.      »«ñΓóÑpªñÑ¡¿Ñ     ßó∩º¿     páí«ΓáÑΓ      ß½ÑñπεΘ¿¼      «ípẫ¼:
  1093.      ¬«¼»∞εΓÑp-¿ßΓ«τ¡¿¬  »«ßδ½áÑΓ  »Ñpóδ⌐ íá⌐Γ ¿ »ÑpÑσ«ñ¿Γ ó ß«ßΓ«∩¡¿Ñ
  1094.      «ª¿ñá¡¿∩  ó«ºópáΓá  «Γ  ¬«¼»∞εΓÑpá-»p¿Ñ¼¡¿¬á  ¬ó¿Γ¿pπεΘÑú«  íá⌐Γá
  1095.      (íá⌐Γá,  »«ñΓóÑpªñáεΘÑú«  »p¿¡∩Γ¿Ñ  »pÑñδñπΘÑú«  ß««íΘÑ¡¿∩).  Åp¿
  1096.      »«½πτÑ¡¿¿   ¬ó¿Γ¿pπεΘÑú«   íá⌐Γá   ¬«¼»∞εΓÑp-¿ßΓ«τ¡¿¬    »«ßδ½áÑΓ
  1097.      ß½ÑñπεΘ¿⌐   íá⌐Γ   ¿   ß¡«óá   »ÑpÑσ«ñ¿Γ   ó  ß«ßΓ«∩¡¿Ñ  «ª¿ñá¡¿∩
  1098.      ¬ó¿Γ¿pπεΘÑú« íá⌐Γá «Γ ¬«¼»∞εΓÑpá-»p¿Ñ¼¡¿¬á.
  1099.  
  1100.           ¥Γ«Γ »p«µÑßß »p«ñ«½ªáÑΓß∩ ñ« ΓÑσ »«p, »«¬á óÑß∞ Σá⌐½ µÑ½¿¬«¼
  1101.      ¡Ñ  íπñÑΓ  »ÑpÑñá¡.   ì¿ªÑ  »pÑñßΓáó½Ñ¡δ   ó  ΓÑp¼¿¡áσ  »ßÑóñ«-æ¿
  1102.      »α«µÑñπpδ »ÑpÑñáτ¿ ¿ »p¿Ñ¼á ñá¡¡δσ.
  1103.  
  1104.  
  1105.      send()
  1106.      {
  1107.         while ( ÑßΓ∞ íá⌐Γδ ñ½∩ »ÑpÑñáτ¿ ){
  1108.            send( íá⌐Γ );
  1109.            wait();
  1110.         }
  1111.      }
  1112.      receive()
  1113.      {
  1114.         do {
  1115.            receive_byte();
  1116.            send( ¬ó¿Γ¿pπεΘ⌐ íá⌐Γ );
  1117.         } while( »«¬á óßÑ íá⌐Γδ ¡Ñ ßτ¿Γá¡δ );
  1118.      }
  1119.  
  1120.  
  1121.           Åp¿ φΓ«¼   »«ñσ«ñÑ   »ÑpÑñáτá   ñá¡¡δσ  ¡Ñ  ó맮óÑΓ  ¡¿¬«úñá
  1122.      »ÑpÑ»«½¡Ñ¡¿∩  pÑú¿ßΓpá  ó  »«pΓÑ-»p¿Ñ¼¡¿¬Ñ  ¡Ñºáó¿ß¿¼«  «Γ  Γ«ú«,
  1123.      ¡á߬«½∞¬«   óѽ¿¬á   pạ¿µá   ó   ß¬«p«ßΓ¿  óδ»«½¡Ñ¡¿∩  «»Ñpᵿ⌐
  1124.      ¬«¼»∞εΓÑp«ó, ¼Ñªñ𠬫ëp묨 πßΓá¡«ó½Ñ¡á ßó∩º∞.
  1125.  
  1126.           Åp¿ φΓ«¼  Γ¿»Ñ  »«ñΓóÑpªñÑ¡¿∩  ßó∩º¿   ¿¼ÑÑΓß∩   ½¿Φ∞   «ñ¿¡
  1127.      ¡Ññ«ßΓáΓ«¬ - ß¬«p«ßΓ∞ »ÑpÑñáτ¿ ñá¡¡δσ »áñáÑΓ óñó«Ñ »« ßpáó¡Ñ¡¿ε ß
  1128.      ΓÑ«pÑΓ¿τÑ߬¿ ó«º¼«ª¡«⌐.  ¥Γ« «íΩ∩ß¡∩ÑΓß∩ ΓѼ,  τΓ«  »p¿  »ÑpÑñáτÑ
  1129.      «ñ¡«ú« íá⌐Γá  ¿¡Σ«p¼áµ¿¿ Σá¬Γ¿τÑ߬¿ »α«¿ßσ«ñ¿Γ »ÑpÑñáτá ñóπσ íá⌐Γ
  1130.      (óß»«¼¡¿ΓÑ « ¬ó¿Γ¿pπεΘѼ íá⌐ΓÑ).
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1141. â½áóá VI                                                     -- 20 --
  1142.  
  1143.  
  1144.                         æàêïê éÄæàüêÆ äÇìì¢ò
  1145.      -----------------------------------------------------------------
  1146.  
  1147.           àß½¿ óδ  ß«í¿páÑΓÑß∞  «púá¡¿º«óáΓ∞ »ÑpÑñáτπ Γ«½∞¬« ΓѬßΓ«óδσ
  1148.      Σá⌐½«ó, Γ« óδ ó»«½¡Ñ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ½¿Φ∞ ßѼ∞ í¿Γ »«ñ ñá¡¡δÑ
  1149.      »«  Γ«⌐ ½¿Φ∞ »p¿τ¿¡Ñ,  τΓ« ¡¿ «ñ¡á íπ¬óá ¿½¿ ß¿¼ó«½ »π¡¬Γπᵿ¿ ¡Ñ
  1150.      ΓpÑíπÑΓ ñ½∩ ßó«Ñú« »pÑñßΓáó½Ñ¡¿∩  ó«ßѼ∞  í¿Γ.  ÅÑpÑñáóá∩  Γ«½∞¬«
  1151.      ßѼ∞  í¿Γ,  óδ  ñáªÑ  ¡Ñº¡áτ¿Γѽ∞¡«  πóѽ¿τ¿ΓÑ  ß¬«p«ßΓ∞ »ÑpÑñáτ¿
  1152.      Σá⌐½á. ì« ¬á¬ íδΓ∞, Ñß½¿ ¡Ñ«íσ«ñ¿¼« »ÑpÑñáΓ∞ ¡Ñ ΓѬßΓ«óδ⌐ Σá⌐½, á
  1153.      »p«úpá¼¼π?
  1154.  
  1155.           éßÑ  Σá⌐½δ,  ß«ñÑpªáΘ¿Ñ »p«úpá¼¼δ  (óδ»«½¡∩ѼδÑ) ¿ ¡Ñ¬«Γ«pδÑ
  1156.      ó¿ñδ   Σá⌐½«ó  ñá¡¡δσ,   ¿ß»«½∞ºπεΓ  ó«ß∞¼¿í¿Γ«ó«Ñ  »pÑñßΓáó½Ñ¡¿Ñ
  1157.      ñá¡¡δσ,  Γ« ÑßΓ∞ óÑß∞ íá⌐Γ.  Å« φΓ«⌐ »p¿τ¿¡Ñ  ñ½∩ »ÑpÑñáτ¿ Σá⌐½á,
  1158.      ß«ñÑpªáΘÑú«  óδ»«½¡∩Ѽπε  »p«úpá¼¼π,  »p«úpἼᠠ»ÑpÑñáτ¿  Σá⌐½«ó
  1159.      ñ«½ª¡á  »ÑpÑñáóáΓ∞  óßÑ ó«ßѼ∞  í¿Γ.  Äñ¡á¬«  ßπΘÑßΓóπÑΓ ÑΘÑ «ñ¡á
  1160.      »p«í½Ñ¼á,  ó«º¡¿¬áεΘá∩ »p¿ »ÑpÑñáτÑ ñó«¿τ¡δσ  Σá⌐½«ó: EOF (ß¿¼ó«½
  1161.      End-Of-File)   ¡Ñ  ¿ß»«½∞ºπeΓß∩  ñ½∩  ß¿ú¡á½¿ºáµ¿¿  «í  «¬«¡τá¡¿¿
  1162.      Σá⌐½á. ä½∩ pÑΦÑ¡¿∩ φΓ«⌐ »p«í½Ñ¼δ τ¿ß½« íá⌐Γ«ó ó Σá⌐½Ñ ñ«½ª¡« íδΓ∞
  1163.      »ÑpÑñá¡« »«pΓπ-»p¿Ñ¼¡¿¬π ñ« »ÑpÑñáτ¿ óßÑú« Σá⌐½á.
  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. â½áóá VI                                                     -- 21 --
  1202.  
  1203.  
  1204.                               ÅàÉàèÇùèÇ öÇëïÇ
  1205.      -----------------------------------------------------------------
  1206.  
  1207.           ÅÑpó«⌐ ¡Ñ«íσ«ñ¿¼«⌐  ¡á¼  »«ñ»p«úpá¼¼«⌐   ∩ó½∩ÑΓß∩   Σπ¡¬µ¿∩,
  1208.      «íÑß»Ñτ¿óáεΘá∩  »ÑpÑñáτπ  Σá⌐½á  τÑpѺ  »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ.  é
  1209.      «íΘѼ ß½πτáÑ φΓá  Σπ¡¬µ¿∩  ñ«½ª¡á  «Γ¬pδΓ∞  Σá⌐½,  ¬«Γ«pδ⌐  íπñÑΓ
  1210.      »ÑpÑñá¡ ó ñpπú«⌐ ¬«¼»∞εΓÑp, »«ñßτ¿ΓáΓ∞ Ñú« ñ½¿¡π, »ÑpÑñáΓ∞ ó »«pΓ
  1211.      -»p¿Ñ¼¡¿¬ ñ½¿¡π »ÑpÑñáóáѼ«ú« Σá⌐½á ¿, ó ¬«¡µÑ ¬«¡µ«ó, »ÑpѬáτáΓ∞
  1212.      ßá¼  Σá⌐½.  öπ¡¬µ¿∩ send_file(),  »pÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ,  ¬á¬ pẠ¿
  1213.      »pÑñ¡áº¡áτÑ¡á ñ½∩ pÑΦÑ¡¿∩ φΓ¿σ ºáñáτ.
  1214.  
  1215.  
  1216.      /* »ÑpѬáτ¬á ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« Σá⌐½á */
  1217.      void send_file(fname)
  1218.      char *fname;
  1219.      {
  1220.        FILE *fp;
  1221.        char ch;
  1222.        union {
  1223.          char c[2];
  1224.          unsigned int count;
  1225.        } cnt;
  1226.  
  1227.        if(!(fp=fopen(fname,"rb"))) {
  1228.          printf("éσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  1229.          exit(1);
  1230.        }
  1231.  
  1232.        send_file_name(fname);  /* »ÑpÑñáτá ¿¼Ñ¡¿ Σá⌐½á */
  1233.  
  1234.        wait(PORT);  /* «ª¿ñá¡¿Ñ ¬ó¿Γ¿pπεΘÑú« íá⌐Γá */
  1235.  
  1236.        /* óδτ¿ß½Ñ¡¿Ñ pẼÑpá óδσ«ñ¡«ú« Σá⌐½á */
  1237.        cnt.count = filesize(fp);
  1238.        /* pẼÑp »«ß佬¿ */
  1239.        sport(PORT, cnt.c[0]);
  1240.        wait(PORT);
  1241.        sport(PORT, cnt.c[1]);
  1242.  
  1243.        do {
  1244.          ch = getc(fp);
  1245.          if(ferror(fp)) {
  1246.            printf(" «Φ¿í¬á τΓÑ¡¿∩ óδσ«ñ¡«ú« Σá⌐½á\n");
  1247.            break;
  1248.          }
  1249.  
  1250.          /* «ª¿ñá¡¿Ñ ú«Γ«ó¡«ßΓ¿ »«pΓá-»p¿Ñ¼¡¿¬á */
  1251.          if(!feof(fp)) {
  1252.            wait(PORT);
  1253.            sport(PORT, ch);
  1254.          }
  1255.        } while(!feof(fp));
  1256.        wait(PORT);/* «ª¿ñá¡¿Ñ »«ñΓóÑpªñÑ¡¿∩ »«½πτÑ¡¿∩ »«ß½Ññ¡Ñú« íá⌐Γá
  1257.      */
  1258.  
  1259.  
  1260.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1261. â½áóá VI                                                     -- 22 --
  1262.  
  1263.  
  1264.        fclose(fp);
  1265.      }
  1266.  
  1267.  
  1268.           öπ¡¬µ¿∩ send_file_name(), »pÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ, πßΓá¡áó½¿óáÑΓ
  1269.      ß««ΓóÑΓßΓó¿Ñ ¼Ñªñπ ¿¼Ñ¡Ñ¼ »p¿¡¿¼áѼ«ú« ¿ »ÑpÑñáóáѼ«ú« Σá⌐½«ó.
  1270.  
  1271.  
  1272.      /* ÅÑpѬáτ¬á ¿¼Ñ¡¿ Σá⌐½á */
  1273.      void send_file_name(f)
  1274.      char *f;
  1275.      {
  1276.        printf(" Äª¿ñá¡¿Ñ »ÑpÑñáτ¿... \n");
  1277.        do {
  1278.          sport(PORT, '?');
  1279.        } while(!kbhit() && !(check_stat(PORT)&256));
  1280.        if(kbhit()) {
  1281.          getch();
  1282.          exit(1);
  1283.        }
  1284.        wait(PORT); /* «ª¿ñá¡¿Ñ »«½πτÑ¡¿∩ ¬ó¿Γ¿pπεΘÑú« íá⌐Γá */
  1285.        printf("ÅÑpÑñá¡« %s\n\n",f);
  1286.  
  1287.        /* Σá¬Γ¿τÑ߬á∩ »ÑpÑñáτá ¿¼Ñ¡¿ Σá⌐½á */
  1288.        while(*f) {
  1289.          sport(PORT, *f++);
  1290.          wait(PORT); /* «ª¿ñá¡¿Ñ »«½πτÑ¡¿∩ ¬ó¿Γ¿pπεΘÑú« íá⌐Γá  */
  1291.        }
  1292.        sport(PORT,'\0'); /* ß¿¼ó«½ ¬«¡µá ßΓp«¬¿ */
  1293.      }
  1294.  
  1295.  
  1296.           öπ¡¬µ¿∩  send_file_name()  »pÑñ¡áº¡áτѡᠠñ½∩  pÑΦÑ¡¿∩  ñóπσ
  1297.      «ß¡«ó¡δσ   ºáñáτ.    é«-»Ñpóδσ,   «¡á   πßΓá¡áó½¿óáÑΓ   ßó∩º∞   ß
  1298.      ¬«¼»∞εΓÑp«¼-»p¿Ñ¼¡¿¬«¼ »πΓѼ »ÑpÑñáτ¿ Ñ¼π ¼áp¬Ñpá ó«»p«ßá ('?') ¿
  1299.      ñ«ª¿ñáÑΓß∩ «ΓóÑΓá «Γ ¡Ñú« ó ó¿ñÑ ¬ó¿Γ¿pπεΘÑú«  íá⌐Γá. (é ¬áτÑßΓóÑ
  1300.      ¬ó¿Γ¿pπεΘÑú« ß¿¼ó«½á  ¿ß»«½∞ºπÑΓß∩  Γ«τ¬á.  Äñ¡á¬«  óδ  ¼«ªÑΓÑ »«
  1301.      ßó«Ñ¼π πß¼«ΓpÑ¡¿ε  ¿ß»«½∞º«óáΓ∞  ñpπú«⌐  ß¿¼ó«½.  Å«ß½Ñ Γ«ú«, ¬á¬
  1302.      ßó∩º∞  íπñÑΓ πßΓá¡«ó½Ñ¡á,  «ßπΘÑßΓó½∩ÑΓß∩  »ÑpÑñáτá  ¿¼Ñ¡¿ Σá⌐½á.
  1303.      çá¼ÑΓ∞ΓÑ,  τΓ« φΓá Σπ¡¬µ¿∩  ºáóÑpΦáÑΓ  áóáp¿⌐¡«  ßó«ε  páí«Γπ »p¿
  1304.      »«ßΓπ»½Ñ¡¿¿ »pÑpδóá¡¿∩ «Γ ¬½áó¿áΓπpδ.
  1305.  
  1306.           öπ¡¬µ¿∩ wait(), »pÑñßΓáó½Ñ¡¡á∩ ¡¿ªÑ, «ª¿ñáÑΓ ¬ó¿Γ¿p«óá¡¿∩ «Γ
  1307.      ¬«¼»∞εΓÑpá-»p¿Ñ¼¡¿¬á,  pÑ὿ºπεΘÑú«   »p«úpá¼¼¡«Ñ   »«ñΓóÑpªñÑ¡¿Ñ
  1308.      ßó∩º¿.
  1309.  
  1310.  
  1311.      /* «ª¿ñá¡¿Ñ «ΓóÑΓá */
  1312.      void wait(port)
  1313.      int port;
  1314.      {
  1315.        if(rport(port)!='.') {
  1316.          printf("«Φ¿í¬á πßΓá¡«ó½Ñ¡¿∩ ßó∩º¿ \n");
  1317.          exit(1);
  1318.  
  1319.  
  1320.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1321. â½áóá VI                                                     -- 23 --
  1322.  
  1323.  
  1324.        }
  1325.      }
  1326.  
  1327.           Æá¬¿¼ «ípẫ¼, »p¿ «í¡ápπªÑ¡¿¿ «Φ¿í¬¿ φΓá Σπ¡¬µ¿∩ »pѬpáΘáÑΓ
  1328.      ßó«ε  páí«Γπ.  Äñ¡á¬«  óδ  ¼«ªÑΓÑ  »pÑñπß¼«ΓpÑΓ∞ «ípáí«Γ¬π ñá¡¡«⌐
  1329.      ß¿Γπᵿ¿.
  1330.  
  1331.           öπ¡¬µ¿∩ filesize() ó«ºópáΘáÑΓ  pẼÑp  Σá⌐½á  ó  íá⌐Γáσ.  àÑ
  1332.      ¿ß»«½∞º«óá¡¿Ñ  ó«º¼«ª¡«,  Ñß½¿  óáΦ  ¬«¼»¿½∩Γ«p  æ¿  »«ññÑpª¿óáÑΓ
  1333.      Σπ¡¬µ¿ε óδτ¿ß½Ñ¡¿∩ ñ½¿¡δ Σá⌐½á,  ó  »p«Γ¿ó¡«¼  ß½πτáÑ  óδ  ñ«½ª¡δ
  1334.      ºá¼Ñ¡¿Γ∞   φΓπ   Σπ¡¬µ¿ε   páºpáí«Γá¡¡«⌐   óἿ,  ¡«  óδ»«½¡∩εΘÑ⌐
  1335.      á¡á½«ú¿τ¡δÑ ñÑ⌐ßΓó¿∩. ÅÑpѼѡ¡á∩ cnt, óσ«ñ∩Θá∩ ó ß«ßΓáó ßΓpπ¬Γπpδ
  1336.      union, ß½πª¿Γ ñ½∩ σpá¡Ñ¡¿∩ ñóπσíá⌐Γ«ó«⌐ ñ½¿¡δ Σá⌐½á, ¡« óδ ñ«½ª¡δ
  1337.      »«¼¡¿Γ∞,  τΓ«  ºá  Ññ¿¡¿µπ  ópѼѡ¿  óδ  ¼«ªÑΓÑ  »ÑpÑß½áΓ∞  τÑpѺ
  1338.      »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ Γ«½∞¬« «ñ¿¡ íá⌐Γ.
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376.  
  1377.  
  1378.  
  1379.  
  1380.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1381. â½áóá VI                                                     -- 24 --
  1382.  
  1383.  
  1384.                                 ÅÉêàî öÇëïÇ
  1385.      -----------------------------------------------------------------
  1386.  
  1387.           Åp¿Ñ¼ Σá⌐½á   ∩ó½∩ÑΓß∩   »p∩¼«   »p«Γ¿ó«»«½«ª¡«⌐   «»ÑpᵿÑ⌐
  1388.      »ÑpÑñáτ¿ Σá⌐½á. é«-»Ñpóδσ, Σπ¡¬µ¿∩ »p¿Ñ¼á «ª¿ñáÑΓ ¼áp¬Ñpá ºá»p«ßá
  1389.      ¡á »«½πτÑ¡¿Ñ ñá¡¡δσ (ß¿¼ó«½ '?').  ìá »«½πτÑ¡¿Ñ  ¼áp¬Ñpá  Σπ¡¬µ¿∩
  1390.      «ΓóÑτáÑΓ  Γ«τ¬«⌐  (ß¿¼ó«½«¼ ¬ó¿Γ¿p«óá¡¿∩).  Å«ß½Ñ »«½πτÑ¡¿∩ ¿¼Ñ¡¿
  1391.      Σá⌐½á Σπ¡¬µ¿∩ «ª¿ñáÑΓ »«½πτÑ¡¿Ñ Ñú« pẼÑpá ó íá⌐Γáσ.  é ¬«¡Ñτ¡«¼
  1392.      ¿Γ«úÑ  Σπ¡¬µ¿∩  ¡áτ¿¡áÑΓ  τΓÑ¡¿Ñ Σá⌐½á.  Å«ß½Ñ »«½πτÑ¡¿∩ ¿ τΓÑ¡¿∩
  1393.      ¬áªñ«ú« íá⌐Γá Σπ¡¬µ¿∩ »«ßδ½áÑΓ  ¬«¼»∞εΓÑpπ-¿ßΓ«τ¡¿¬π  ¬ó¿Γ¿pπεΘ¿⌐
  1394.      íá⌐Γ.  Æá¬¿¼  «ípẫ¼  «¡á  pÑ὿ºπÑΓ  »p«úpá¼¼¡«Ñ  »«ñΓóÑpªñÑ¡¿Ñ
  1395.      ßó∩º¿. öπ¡¬µ¿∩ rec_file() »pÑñßΓáó½Ñ¡á ¡¿ªÑ.
  1396.  
  1397.  
  1398.                             /* Åα¿Ñ¼ Σá⌐½á */
  1399.      void rec_file()
  1400.      {
  1401.        FILE *fp;
  1402.        char ch;
  1403.        char fname[14];
  1404.        union {
  1405.          char c[2];
  1406.          unsigned int count;
  1407.        } cnt;
  1408.  
  1409.        get_file_name(fname); /* »«½πτÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á */
  1410.  
  1411.        printf(" Å«½πτÑ¡ Σá⌐½ %s\n",fname);
  1412.        remove(fname);
  1413.        if(!(fp=fopen(fname, "wb"))) {
  1414.          printf(" ìÑ󫺼«ª¡« «Γ¬pδΓ∞ óδσ«ñ¡«⌐ Σá⌐½ \n");
  1415.          exit(1);
  1416.        }
  1417.  
  1418.        /* Å«½πτÑ¡¿Ñ ñ½¿¡δ Σá⌐½á */
  1419.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1420.        cnt.c[0] = rport(PORT);
  1421.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1422.        cnt.c[1] = rport(PORT);
  1423.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1424.  
  1425.        for(; cnt.count; cnt.count--) {
  1426.          ch = rport(PORT);
  1427.          putc(ch, fp);
  1428.          if(ferror(fp)) {
  1429.            printf(" «Φ¿í¬á ºá»¿ß¿ ó Σá⌐½ ");
  1430.            exit(1);
  1431.          }
  1432.          sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1433.        }
  1434.        fclose(fp);
  1435.      }
  1436.  
  1437.           öπ¡¬µ¿∩ get_file_name() »pÑñßΓáó½Ñ¡á ¡¿ªÑ.
  1438.  
  1439.  
  1440.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1441. â½áóá VI                                                     -- 25 --
  1442.  
  1443.  
  1444.  
  1445.      /* Å«½πτÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á */
  1446.      void get_file_name(f)
  1447.      char *f;
  1448.      {
  1449.        printf("Ī¿ñá¡¿Ñ »«½πτÑ¡¿∩...\n");
  1450.        while(rport(PORT)!='?') ;
  1451.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1452.        while((*f=rport(PORT))) {
  1453.          if(*f!='?') {
  1454.            f++;
  1455.            sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1456.          }
  1457.         }
  1458.       }
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.  
  1465.  
  1466.  
  1467.  
  1468.  
  1469.  
  1470.  
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1501. â½áóá VI                                                     -- 26 --
  1502.  
  1503.  
  1504.                             ÅàÉàèÇùèÇ  ÅÉÄâÉÇîî¢
  1505.      -----------------------------------------------------------------
  1506.  
  1507.           öá⌐½, ¬«Γ«pδ⌐ «íÑß»Ñτ¿óáÑΓ »ÑpѬáτ¬π »p«úpá¼¼δ ¿º ¬«¼»∞εΓÑpá
  1508.      ó  ¬«¼»∞εΓÑp,  ó¬½ετáεΘ¿⌐  óßÑ  ¡Ñ«íσ«ñ¿¼δÑ  Σπ¡¬µ¿¿   »«ññÑpª¬¿,
  1509.      »pÑñßΓáó½Ñ¡  ó  ñá¡¡«¼ »ápáúpáΣÑ.  Åp«úpἼᠻÑpѬáτ¬¿ ¿ß»«½∞ºπÑΓ
  1510.      »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ ß ¿¼Ñ¡Ñ¼ 0 - »Ñpóδ⌐  »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ;
  1511.      «ñ¡á¬«,  ¿º¼Ñ¡∩∩  º¡áτÑ¡¿∩  ¼á¬p««»pÑñѽѡ¿∩ PORT ó ¡áτá½Ñ ΓѬßΓá
  1512.      »p«úpá¼¼δ, óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ñpπú¿Ñ »«pΓδ.
  1513.  
  1514.  
  1515.      /*   Åp«úpἼᠻÑpѬáτ¬¿ Σá⌐½á, ¿ß»«½∞ºπεΘá∩
  1516.           »p«úpá¼¼¡«Ñ »«ñΓóÑpªñÑ¡¿Ñ ßó∩º¿.
  1517.           Å«pΓ ¿¡¿µ¿á½¿º¿p«óá¡ ß »ápá¼ÑΓpἿ:
  1518.                ß¬«p«ßΓ∞ »ÑpÑñáτ¿ - 9600 í«ñ,
  1519.                ¬«¡Γp«½∞ τÑΓ¡«ßΓ¿/¡ÑτÑΓ¡«ßΓ¿ ¡Ñ »p«¿ºó«ñ¿Γß∩,
  1520.                ó«ßѼ∞ í¿Γ ñá¡¡δσ,
  1521.                ñóá ºáóÑpΦáεΘ¿σ ßΓ«»-í¿Γá.
  1522.      */
  1523.  
  1524.      #define PORT 0
  1525.  
  1526.      #include "dos.h"
  1527.      #include "stdio.h"
  1528.  
  1529.      unsigned int filesize();
  1530.      void sport(), send_file(), rec_file(), send_file_name();
  1531.      void get_file_name(), port_init(), wait();
  1532.  
  1533.      main(argc,argv)
  1534.      int argc;
  1535.      char *argv[];
  1536.      {
  1537.        if(argc<2) {
  1538.       printf(" êß»«½∞ºπ⌐ΓÑ Σ«p¼áΓ TRANS S <¿¼∩ Σá⌐½á> ¿½¿ TRANS R\n");
  1539.          exit(1);
  1540.        }
  1541.  
  1542.        printf("çáñáτá »ÑpѬáτ¬¿ »p«úpá¼¼ ºá»πΘÑ¡á. ä½∩ áóáp¿⌐¡«ú«\n");
  1543.        printf("ºáóÑpΦÑ¡¿∩ ¡áª¼¿ΓÑ ½εíπε ¬½áó¿Φπ.\n\n");
  1544.  
  1545.        port_init(PORT, 231); /* ¿¡¿µ¿á½¿ºáµ¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá
  1546.                              */
  1547.  
  1548.        if(tolower(*argv[1]) == 's') send_file(argv[2]);
  1549.        else rec_file();
  1550.      }
  1551.      /* »ÑpѬáτ¬á ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« Σá⌐½á */
  1552.      void send_file(fname)
  1553.      char *fname;
  1554.      {
  1555.        FILE *fp;
  1556.        char ch;
  1557.        union {
  1558.  
  1559.  
  1560.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1561. â½áóá VI                                                     -- 27 --
  1562.  
  1563.  
  1564.          char c[2];
  1565.          unsigned int count;
  1566.        } cnt;
  1567.  
  1568.        if(!(fp=fopen(fname,"rb"))) {
  1569.          printf("éσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  1570.          exit(1);
  1571.        }
  1572.  
  1573.        send_file_name(fname);  /* »ÑpÑñáτá ¿¼Ñ¡¿ Σá⌐½á */
  1574.  
  1575.        wait(PORT);  /* «ª¿ñá¡¿Ñ ¬ó¿Γ¿pπεΘÑú« íá⌐Γá */
  1576.  
  1577.        /* óδτ¿ß½Ñ¡¿Ñ pẼÑpá óδσ«ñ¡«ú« Σá⌐½á */
  1578.        cnt.count = filesize(fp);
  1579.        /* pẼÑp »«ß佬¿ */
  1580.        sport(PORT, cnt.c[0]);
  1581.        wait(PORT);
  1582.        sport(PORT, cnt.c[1]);
  1583.  
  1584.        do {
  1585.          ch = getc(fp);
  1586.          if(ferror(fp)) {
  1587.            printf(" «Φ¿í¬á τΓÑ¡¿∩ óδσ«ñ¡«ú« Σá⌐½á\n ");
  1588.            break;
  1589.          }
  1590.  
  1591.          /* «ª¿ñá¡¿Ñ ú«Γ«ó¡«ßΓ¿ »«pΓá-»p¿Ñ¼¡¿¬á */
  1592.          if(!feof(fp)) {
  1593.            wait(PORT);
  1594.            sport(PORT, ch);
  1595.          }
  1596.        } while(!feof(fp));
  1597.        wait(PORT);/* «ª¿ñá¡¿Ñ »«ñΓóÑpªñÑ¡¿∩ »«½πτÑ¡¿∩ »«ß½Ññ¡Ñú« íá⌐Γá
  1598.      */
  1599.        fclose(fp);
  1600.      }
  1601.  
  1602.      /* »p¿Ñ¼ Σá⌐½á */
  1603.      void rec_file()
  1604.      {
  1605.        FILE *fp;
  1606.        char ch;
  1607.        char fname[14];
  1608.        union {
  1609.          char c[2];
  1610.          unsigned int count;
  1611.        } cnt;
  1612.  
  1613.        get_file_name(fname); /* »«½πτÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á */
  1614.  
  1615.        printf("Å«½πτÑ¡ Σá⌐½ %s\n",fname);
  1616.        remove(fname);
  1617.        if(!(fp=fopen(fname, "wb"))) {
  1618.  
  1619.  
  1620.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1621. â½áóá VI                                                     -- 28 --
  1622.  
  1623.  
  1624.          printf(" ìÑ󫺼«ª¡« «Γ¬pδΓ∞ óδσ«ñ¡«⌐ Σá⌐½ \n");
  1625.          exit(1);
  1626.        }
  1627.  
  1628.        /* Å«½πτÑ¡¿Ñ ñ½¿¡δ Σá⌐½á */
  1629.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1630.        cnt.c[0] = rport(PORT);
  1631.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1632.        cnt.c[1] = rport(PORT);
  1633.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1634.  
  1635.        for(; cnt.count; cnt.count--) {
  1636.          ch = rport(PORT);
  1637.          putc(ch, fp);
  1638.          if(ferror(fp)) {
  1639.            printf("ÄΦ¿í¬á ºá»¿ß¿ ó Σá⌐½ ");
  1640.            exit(1);
  1641.          }
  1642.          sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1643.        }
  1644.        fclose(fp);
  1645.      }
  1646.  
  1647.      /* é«ºópáΘÑ¡¿Ñ º¡áτÑ¡¿∩ ñ½¿¡δ Σá⌐½á ó íá⌐Γáσ */
  1648.      unsigned int filesize(fp)
  1649.      FILE *fp;
  1650.      {
  1651.        unsigned long int i;
  1652.  
  1653.        i = 0;
  1654.        do {
  1655.          getc(fp);
  1656.          i++;
  1657.        } while(!feof(fp));
  1658.        rewind(fp);
  1659.        return (i-1); /* ìÑ ßτ¿Γá∩ ß¿¼ó«½ EOF */
  1660.      }
  1661.  
  1662.      /* ÅÑpѬáτ¬á ¿¼Ñ¡¿ Σá⌐½á */
  1663.      void send_file_name(f)
  1664.      char *f;
  1665.      {
  1666.        printf(" «ª¿ñá¡¿Ñ »ÑpÑñáτ¿... \n");
  1667.        do {
  1668.          sport(PORT, '?');
  1669.        } while(!kbhit() && !(check_stat(PORT)&256));
  1670.        if(kbhit()) {
  1671.          getch();
  1672.          exit(1);
  1673.        }
  1674.        wait(PORT); /* «ª¿ñá¡¿Ñ »«½πτÑ¡¿∩ ¬ó¿Γ¿pπεΘÑú« íá⌐Γá */
  1675.        printf("ÅÑpÑñá¡« %s\n\n",f);
  1676.  
  1677.        /* Σá¬Γ¿τÑ߬á∩ »ÑpÑñáτá ¿¼Ñ¡¿ Σá⌐½á */
  1678.  
  1679.  
  1680.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1681. â½áóá VI                                                     -- 29 --
  1682.  
  1683.  
  1684.        while(*f) {
  1685.          sport(PORT, *f++);
  1686.          wait(PORT); /* «ª¿ñá¡¿Ñ »«½πτÑ¡¿∩ ¬ó¿Γ¿pπεΘÑú« íá⌐Γá  */
  1687.        }
  1688.        sport(PORT, '\0'); /* ß¿¼ó«½ ¬«¡µá ßΓp«¬¿ */
  1689.      }
  1690.  
  1691.      /* Å«½πτÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á */
  1692.      void get_file_name(f)
  1693.      char *f;
  1694.      {
  1695.        printf(" «ª¿ñá¡¿Ñ »«½πτÑ¡¿∩...\n");
  1696.        while(rport(PORT)!='?');
  1697.        sport(PORT, '.');     /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1698.        while((*f=rport(PORT))) {
  1699.          if(*f!='?') {
  1700.            f++;
  1701.            sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  1702.          }
  1703.         }
  1704.       }
  1705.  
  1706.      /* Äª¿ñá¡¿Ñ «ΓóÑΓá */
  1707.      void wait(port)
  1708.      int port;
  1709.      {
  1710.        if(rport(port)!='.') {
  1711.          printf("«Φ¿í¬á πßΓá¡«ó½Ñ¡¿∩ ßó∩º¿ \n");
  1712.          exit(1);
  1713.        }
  1714.      }
  1715.  
  1716.      /* ÅÑpÑñáτá ß¿¼ó«½á ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  1717.      void sport(port, c)
  1718.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  1719.      char c;   /* »ÑpÑßδ½áѼδ⌐ ß¿¼ó«½ */
  1720.      {
  1721.        union REGS r;
  1722.  
  1723.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  1724.        r.h.al = c; /* ß¿¼ó«½ ñ½∩ »ÑpÑñáτ¿ */
  1725.        r.h.ah = 1; /* Σπ¡¬µ¿∩ »ÑpÑñáτ¿ ß¿¼ó«½á */
  1726.        int86(0x14, &r, &r);
  1727.        if(r.h.ah & 128) {
  1728.        printf("«Φ¿í¬á »p¿ »ÑpÑñáτÑ ñá¡¡δσ ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ ");
  1729.          exit(1);
  1730.        }
  1731.      }
  1732.  
  1733.      /* τΓÑ¡¿Ñ ß¿¼ó«½á ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  1734.      rport(port)
  1735.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  1736.      {
  1737.        union REGS r;
  1738.  
  1739.  
  1740.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1741. â½áóá VI                                                     -- 30 --
  1742.  
  1743.  
  1744.  
  1745.        /* «ª¿ñá¡¿Ñ ß¿¼ó«½á */
  1746.        while(!(check_stat(PORT)&256))
  1747.          if(kbhit()) { /* áóáp¿⌐¡«Ñ ºáóÑpΦÑ¡¿Ñ »« »pÑpδóá¡¿ε ß
  1748.                           ¬½áó¿áΓπpδ */
  1749.            getch();
  1750.            exit(1);
  1751.          }
  1752.  
  1753.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  1754.        r.h.ah = 2; /* Σπ¡¬µ¿∩ τΓÑ¡¿∩ ß¿¼ó«½á  */
  1755.        int86(0x14, &r, &r);
  1756.        if(r.h.ah & 128)
  1757.         printf(" «í¡ápπªÑ¡á «Φ¿í¬á τΓÑ¡¿∩ ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ ");
  1758.        return r.h.al;
  1759.      }
  1760.  
  1761.      /* ¬«¡Γp«½∞ ß«ßΓ«∩¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  1762.      cheek_stat(port)
  1763.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  1764.      {
  1765.        union REGS r;
  1766.  
  1767.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ  */
  1768.        r.h.ah = 3;    /* τΓÑ¡¿Ñ ß«ßΓ«∩¡¿∩ */
  1769.        int86(0x14, &r, &r);
  1770.        return r.x.ax;
  1771.      }
  1772.  
  1773.      /* ¿¡¿µ¿á½¿ºáµ¿∩ »«pΓá
  1774.      */
  1775.      void port_init(port, code)
  1776.      int port;
  1777.      unsigned char code;
  1778.      {
  1779.        union REGS r;
  1780.  
  1781.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  1782.        r.h.ah = 0;    /* Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿ »«pΓá*/
  1783.        r.h.al = code; /* ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿ - ß¼. óδΦÑ */
  1784.        int86(0x14, &r, &r);
  1785.      }
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1801. â½áóá VI                                                     -- 31 --
  1802.  
  1803.  
  1804.                   êæÅÄï£çÄéÇìêà æÉà俯é ÅàÉàèÇùèê ÅÉÄâÉÇîî
  1805.      -----------------------------------------------------------------
  1806.  
  1807.           Åp«úpἼᠻÑpѬáτ¬¿ «ípáíáΓδóáÑΓ  ñá¡¡δÑ  ó  ß««ΓóÑΓßΓó¿¿  ß
  1808.      »ápá¼ÑΓpἿ   ó  ¬«¼á¡ñ¡«⌐  ßΓp«¬Ñ.  é«  óßÑσ  ß½πτá∩σ  »p«úpá¼¼á
  1809.      »ÑpѬáτ¬¿ óδºδóáÑΓß∩ »« ¿¼Ñ¡¿  TRANS  .  Ä¡á  óδ»«½¡∩ÑΓ  »ÑpÑñáτπ
  1810.      Σá⌐½á, ¿ß»«½∞ºπ∩ ß½ÑñπεΘ¿Ñ «ß¡«ó¡δÑ Σ«p¼δ ó맮óá:
  1811.  
  1812.                             TRANS S <¿¼∩_Σá⌐½á>,
  1813.  
  1814.           úñÑ  <¿¼∩_Σá⌐½á>  -  ¿¼∩ Σá⌐½á, ¬«Γ«pδ⌐ ΓpÑíπÑΓß∩ »ÑpÑñáΓ∞ ó
  1815.      ñpπú«⌐ ¬«¼»∞εΓÑp τÑpѺ »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ.
  1816.  
  1817.           ä½∩ »«½πτÑ¡¿∩ Σá⌐½á ¡Ñ«íσ«ñ¿¼« óδñáΓ∞ ¬«¼á¡ñπ:
  1818.  
  1819.                             TRANS R
  1820.  
  1821.           Åp¿ »«½πτÑ¡¿¿   Σá⌐½á   ß»Ñµ¿Σ¿µ¿p«óáΓ∞    Ñú«    ¿¼∩    ¡ÑΓ
  1822.      ¡Ñ«íσ«ñ¿¼«ßΓ¿   ó  ßó∩º¿  ß  ΓѼ,  τΓ«  ¿¼∩  »ÑpÑñáóáѼ«ú«  Σá⌐½á
  1823.      »«ßδ½áÑΓß∩ »ÑpÑñ Ñú« ¡Ñ»«ßpÑñßΓóÑ¡¡«⌐ »ÑpÑñáτÑ⌐ ¿º  ¬«¼»∞εΓÑpá  -
  1824.      ¿ßΓ«τ¡¿¬á.
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1861. â½áóá VI                                                     -- 32 --
  1862.  
  1863.  
  1864.                    äÇï£ìàëÿàà æÄéàÉÿàìæÆéÄéÇìêà ÅÉÄâÉÇîî¢
  1865.      -----------------------------------------------------------------
  1866.  
  1867.           Åp«úpἼᠻÑpѬáτ¬¿ Σá⌐½«ó  ∩ó½∩ÑΓß∩  Σπ¡¬µ¿«¡á½∞¡«  »«½¡«⌐,
  1868.      ß«óÑpΦÑ¡¡«   íѺ«»áß¡«⌐   ¿   ¡áñѪ¡«⌐.   àßΓÑßΓóÑ¡¡«,   τΓ«  »p¿
  1869.      φ¬ß»½πáΓᵿ¿¿ »p«úpá¼¼δ óá¼  ¼«ªÑΓ  óßΓpÑΓ¿Γ∞ß∩  p∩ñ  ¬p¿Γ¿τÑ߬¿σ
  1870.      ß¿Γπᵿ⌐,  ñ½∩  ¬«Γ«pδσ  ñáªÑ ¡Ñ πßΓá¡«ó½Ñ¡δ ß««ΓóÑΓßΓóπεΘ¿Ñ ¬«ñδ
  1871.      «Φ¿í«¬.  é  φΓ«¼  ß½πτáÑ   óδ,   ó«º¼«ª¡«,   ºáσ«Γ¿ΓÑ   ¡Ñ߬«½∞¬«
  1872.      πß«óÑpΦÑ¡ßΓó«óáΓ∞ φΓπ »p«úpá¼¼π, ñ«íáó¿ó ó ¡ÑÑ ¡«óδÑ Σπ¡¬µ¿¿.
  1873.  
  1874.           Äñ¡¿¼ ¿º  »πΓÑ⌐  óδ∩ó½Ñ¡¿∩ ¬p¿Γ¿τÑ߬¿σ ß¿Γπᵿ⌐ »p¿ »ÑpÑñáτÑ
  1875.      ñá¡¡δσ ∩ó½∩ÑΓß∩ «íÑß»ÑτÑ¡¿Ñ pѪ¿¼á "φσ«" ñ½∩  ¬áªñ«ú« »«½πτÑ¡¡«ú«
  1876.      íá⌐Γá,  pÑ὿ºπѼ«ú«  »πΓѼ ¿ß»«½∞º«óá¡¿∩ ó ¬áτÑßΓóÑ ¬ó¿Γ¿pπεΘÑú«
  1877.      íá⌐Γá Γ«½∞¬« τΓ« »«½πτÑ¡¡«ú« íá⌐Γá  ¿¡Σ«p¼áµ¿¿.  ä½∩  φΓ«ú«  ¡áñ«
  1878.      ñ«páí«ΓáΓ∞  Σπ¡¬µ¿ε  »ÑpÑñáτ¿.  Ä¡á,  ó  τáßΓ¡«ßΓ¿,  ñ«½ª¡á íπñÑΓ
  1879.  
  1880.      »p«ó«ñ¿Γ∞ cpáó¡Ñ¡¿Ñ  »ÑpÑñá¡¡«ú«  íá⌐Γá  ß  ß««ΓóÑΓßΓóπεΘ¿¼  φΓ«⌐
  1881.      »ÑpÑñáτÑ ¬ó¿Γ¿pπεΘ¿¼ íá⌐Γ«¼. Åp¿ «í¡ápπªÑ¡¿¿ αẽ¿τ¿⌐ φΓ¿σ íá⌐Γ«ó
  1882.      Σπ¡¬µ¿∩ ñ«½ª¡á ¿¡Σ«p¼¿p«óáΓ∞ «í «Φ¿í¬Ñ.
  1883.  
  1884.           î«ª¡« ΓᬪѠñ«páí«ΓáΓ∞ »p«úpá¼¼π Γá¬, τΓ«íδ «¡á «ßπΘÑßΓó½∩½á
  1885.      »«»δΓ¬π  »«óΓ«p¿Γ∞ ñÑ⌐ßΓó¿∩,  óδºδóáεΘ¿Ñ «Φ¿í¬π,  á ¡Ñ »pѬpáΘá½á
  1886.      Σπ¡¬µ¿«¡¿p«óá¡¿Ñ »p¿ «í¡ápπªÑ¡¿¿ «Φ¿í¬¿.  æ½ÑñπÑΓ  «Γ¼ÑΓ¿Γ∞,  τΓ«
  1887.      áóΓ«¼áΓ¿τÑ߬¿⌐  »ÑpѺá»π߬  Σπ¡¬µ¿⌐  ó »p«úpἼѠ»ÑpѬáτ¬¿ Σá⌐½«ó
  1888.      º¡áτ¿Γѽ∞¡«  πß½«ª¡∩ÑΓ  ¬á¬  Σπ¡¬µ¿¿  »ÑpÑñáτ¿,  Γᬠ ¿   Σπ¡¬µ¿¿
  1889.      »«½πτÑ¡¿∩  Σá⌐½«ó.  ì«  ó  Γ« ªÑ ópѼ∩ ºáΓpáΓδ »«½¡«ßΓ∞ε «¬π»∩Γß∩
  1890.      ΓѼ,  τΓ« óδ»«½¡Ñ¡¿Ñ »p«úpá¼¼δ ¡á «ñ¡«¼,  á ¼«ªÑΓ íδΓ∞ ßpáºπ ¿ ¡á
  1891.      ñóπσ    ¬«¼»∞εΓÑpáσ   ß¼«ªÑΓ   ó   φΓ«¼   ß½πτáÑ   «í«⌐Γ¿ß∞   íѺ
  1892.      ¡Ñ»«ßpÑñßΓóÑ¡¡«ú« ß«»p«ó«ªñÑ¡¿∩ »«½∞º«óáΓѽѼ.
  1893.  
  1894.           ê, ¡á¬«¡Ñµ,   óá¼   ¼«ªÑΓ   »«¡áñ«í¿Γ∞ß∩   óδñáτá    »p¿τ¿¡δ
  1895.      ó«º¡¿¬¡«óÑ¡¿∩ Γ«⌐ ¿½¿ ¿¡«⌐ «Φ¿í¬¿ ó »p«µÑßßÑ »ÑpÑñáτ¿ Σá⌐½«ó. ¥Γ«
  1896.      ßó«⌐ßΓó«  »p«úpá¼¼δ  «τÑ¡∞  »«¼«ªÑΓ  óá¼  »p¿   pÑΦÑ¡¿¿   »p«í½Ñ¼
  1897.      ñ¿áú¡«ßΓ¿¬¿ »p«µÑßßá »ÑpÑñáτ¿ Σá⌐½«ó ¿º ¬«¼»∞εΓÑpá ó ¬«¼»∞εΓÑp.
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1921. â½áóá VI                                                     -- 33 --
  1922.  
  1923.  
  1924.                                ÅÉÄæÆàëÿǃ ïéæ
  1925.      -----------------------------------------------------------------
  1926.  
  1927.           ï«¬á½∞¡δÑ óδτ¿ß½¿Γѽ∞¡δÑ ßÑΓ¿  (ïéæ)  »«½πτáεΓ  óßÑ  í«½∞Φπε
  1928.      »«»π½∩p¡«ßΓ∞  »p¿ ß«ó¼ÑßΓ¡«¼ ¿ß»«½∞º«óá¡¿¿ ¼¡«ªÑßΓóá ¬«¼»∞εΓÑp«ó.
  1929.      ¥Γ¿ ßÑΓ¿ «íÑß»Ñτ¿óáεΓ »ÑpÑñáτπ ¬á¬ ñá¡¡δσ,  Γᬠ¿ »p«úpá¼¼  ¼Ñªñπ
  1930.      ¼¡«ªÑßΓó«¼ pẽ¿τ¡δ󠬫¼»∞εΓÑp«ó. æπΘÑßΓóπÑΓ ñóá «ß¡«ó¡δσ ß»«ß«íá
  1931.      «íΩÑñ¿¡Ñ¡¿∩ ¬«¼»∞εΓÑp«ó ó ïéæ. ÅÑpóδ⌐ ¼ÑΓ«ñ ß«ßΓ«¿Γ ó «íΩÑñ¿¡Ñ¡¿¿
  1932.      óßÑ󠬫¼»∞εΓÑp«ó ó ßÑΓ∞,  »p¿τѼ ½εí«⌐ ¬«¼»∞εΓÑp ¼«ªÑΓ «ípáΓ¿Γ∞ß∩
  1933.      ºá ¿¡Σ«p¼áµ¿Ñ⌐ ¿½¿ »p«úpá¼¼«⌐ ¬ ½εí«¼π ñpπú«¼π  ¬«¼»∞εΓÑpπ. Æá¬«⌐
  1934.      ß»«ß«í  «íΩÑñ¿¡Ñ¡¿∩  ¡áºδóáÑΓß∩  ßÑΓ∞ε  ß  ¬«½∞µÑó«⌐  Γ«»«½«ú¿Ñ⌐.
  1935.      Äñ¡á¬«,  φΓ«Γ Γ¿» ßÑΓÑ⌐ ¬p«¼Ñ óßÑσ Ñú« »pÑ¿¼πΘÑßΓó «í½áñáÑΓ ΓpѼ∩
  1936.      ¬pπ»¡δ¼¿ ¡Ññ«ßΓáΓ¬á¼¿,  ¬«Γ«pδÑ «íπß½áó½¿óáεΓ ñ«ó«½∞¡« pÑñ¬«Ñ Ñú«
  1937.      ¿ß»«½∞º«óá¡¿Ñ.  é«-»Ñpóδσ,  φΓ« Γpπñ¡«ßΓ∞ (σ«Γ∩  φΓá  »p«í½Ñ¼á  ¿
  1938.      páºpÑΦ¿¼á)   «íÑß»ÑτÑ¡¿∩   íѺ«»áß¡«ßΓ¿   ¿¡Σ«p¼áµ¿¿.  é«-óΓ«pδσ,
  1939.      π»páó½Ñ¡¿Ñ ñá¡¡δ¼¿ ¿ »p«úpἼἿ ñ«½ª¡«  óδ»«½¡∩Γ∞ß∩  ¬«¼»½Ñ¬ß¡«,
  1940.      Γᬠ¬á¬ µÑ¡Γp὿º«óá¡¡«ú« pẼÑΘÑ¡¿∩ «»pÑñѽѡ¡δσ Σá⌐½«ó ñ«í¿Γ∞ß∩
  1941.      ¡Ñ󫺼«ª¡«.  é-ΓpÑΓ∞¿σ,  ¬áªñδ⌐  ¬«¼»∞εΓÑp,  ó¬½ετÑ¡¡δ⌐  ó  ßÑΓ∞,
  1942.      ñ«½ªÑ¡  »«ßΓ«∩¡¡« óδñѽ∩Γ∞ τáßΓ∞ ßó«¿σ óδτ¿ß½¿Γѽ∞¡δσ pÑßπpß«ó ¡á
  1943.      »ÑpÑß佬π pẽ¿τ¡δσ   Σá⌐½«ó   »«½∞º«óáΓѽÑ⌐,   τΓ«   º¡áτ¿Γѽ∞¡«
  1944.      »«¡¿ªáÑΓ »p«¿ºó«ñ¿Γѽ∞¡«ßΓ∞ ¬áªñ«ú« ¬«¼»∞εΓÑpá.
  1945.           éΓ«pδ¼, í«½ÑÑ  «íΘ¿¼  ¼ÑΓ«ñ«¼  ß«ºñá¡¿∩  ïéæ  ∩ó½∩ÑΓß∩  ßÑΓ∞
  1946.      ºóѺñ««ípạ«⌐  Γ«»«½«ú¿¿.  ¥Γ«Γ  ¼ÑΓ«ñ  ¿ß»«½∞ºπÑΓ   µÑ¡Γpá½∞¡δ⌐
  1947.      ¬«¼»∞εΓÑp-ñ¿ß»ÑΓτÑp  ñ½∩ σpá¡Ñ¡¿∩ Σá⌐½«ó ¿ «íÑß»ÑτÑ¡¿∩ ¿¼¿ ñpπú¿σ
  1948.      ¬«¼»∞εΓÑp«ó ßÑΓ¿.  ûÑ¡Γpá½∞¡δ⌐ ¬«¼»∞εΓÑp τáßΓ« ¡áºδóáεΓ  Σá⌐½«óδ¼
  1949.      ßÑαóÑα«¼ (file  server).  è«¼»∞εΓÑpδ,  ¿¼ÑεΘ¿Ñ ñ«ßΓπ» ¬ Σá⌐½«ó«¼π
  1950.      ßÑαóÑαπ,  ó  ºáó¿ß¿¼«ßΓ¿  «Γ   »p«¿ºó«ñ¿Γѽ∞¡«ßΓ¿   ¿   ß»Ñµ¿Σ¿¬¿
  1951.      ¿ß»«½∞º«óá¡¿∩   ¡áºδóáεΓß∩   πº½á¼¿   ßÑΓ¿  (nodes),  ΓÑp¼¿¡á½á¼¿
  1952.      (terminals) ¿½¿ páí«τ¿¼¿ ßΓᡵ¿∩¼¿ (workstations).
  1953.  
  1954.           Äß«íÑ¡¡«ßΓ¿ Γ«»«½«ú¿¿ ñóπσ Γ¿»«ó ßÑΓÑ⌐  ¿½½εßΓp¿pπÑΓ p¿ßπ¡«¬
  1955.      6-1.  é  ñá¡¡«¼  »ápáúpáΣÑ  páßß¼áΓp¿óáÑΓß∩  ßÑΓ∞  ºóѺñ««ípạ«⌐
  1956.      Γ«»«½«ú¿¿.  é  ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿  ó   ºáú«½«ó¬Ñ   »ápáúpáΣá   ÑßΓ∞
  1957.      »pÑπóѽ¿τÑ¡¿Ñ. é  ¡áßΓ«∩Θ¿σ  ïéæ  Σá⌐½«óδ⌐ ßÑαóÑα "»p«ºpáτÑ¡" ñ½∩
  1958.      óßÑσ áí«¡Ñ¡Γ«ó ßÑΓ¿ ¿ ½¿Φ∞ páßΦ¿p∩ÑΓ ó«º¼«ª¡«ßΓ¿  páí«τ¿σ ßΓᡵ¿⌐
  1959.      ïéæ »«  ¡Ñ»«ßpÑñßΓóÑ¡¡«¼π  ñ«ßΓπ»π  ¬  Σá⌐½á¼  Σá⌐½«ó«ú« ßÑαóÑαá.
  1960.      Åp«úpá¼¼δ,  »pÑñßΓáó½Ñ¡¡δÑ ó φΓ«¼ »ápáúpáΣÑ, ¿ß»«½∞ºπεΓß∩ páí«τÑ⌐
  1961.      ßΓᡵ¿Ñ⌐  ïéæ  ñ½∩ ∩ó¡«ú« π¬áºá¡¿∩ Σá⌐½á ¿ ñ«ßΓπ»á ¬ ¡Ñ¼π.  Æá¬¿¼
  1962.      «ípẫ¼,  φë໫ñσ«ñ «í½ÑúτáÑΓ ñá½∞¡Ñ⌐ΦÑÑ páºó¿Γ¿Ñ  »p«úpá¼¼¡«ú«
  1963.      «íÑß»ÑτÑ¡¿∩,  Γᬠ ¬á¬  ¡Ñ ΓpÑíπÑΓ ß»Ñµ¿á½∞¡δσ á»»ápáΓ¡δσ ßpÑñßΓó
  1964.      ñ½∩ pÑ὿ºáµ¿¿ Σá⌐½«ó«ú«  ßÑαóÑαá.  éδ  ¼«ªÑΓÑ  ¿ß»«½∞º«óáΓ∞  φΓ¿
  1965.      »p«úpá¼¼δ   ó  ¬áτÑßΓóÑ  ßΓápΓ«ó«⌐  Γ«τ¬¿  »p¿  páºpáí«Γ¬Ñ  óßÑú«
  1966.      »p«úpá¼¼¡«ú« «íÑß»ÑτÑ¡¿∩ ïéæ.
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  1981. â½áóá VI                                                     -- 34 --
  1982.  
  1983.  
  1984.                              öÇëïÄé¢ë æàÉéàÉ
  1985.      -----------------------------------------------------------------
  1986.  
  1987.           öá⌐½«óδ⌐ ßÑαóÑα   ¡áσ«ñ¿Γß∩  ó  µÑ¡ΓpÑ  ßÑΓ¿  ºóѺñ««ípạ«⌐
  1988.      Γ«»«½«ú¿¿  ¿  «ßπΘÑßΓó½∩ÑΓ  »«ß½Ññ«óáΓѽ∞¡δ⌐  ¬«¡Γp«½∞  ß«ßΓ«∩¡¿⌐
  1989.      ¬áªñ«ú«   »«ß½Ññ«óáΓѽ∞¡«ú«  »«pΓá  ó  ß¿ßΓѼÑ.  Éáí«τá∩  ßΓᡵ¿∩
  1990.      ß¿ú¡á½¿º¿pπÑΓ «  ΓpÑí«óá¡¿¿  ¡á  »«½πτÑ¡¿Ñ  ¿½¿  »ÑpÑñáτπ  Σá⌐½á,
  1991.      »«¼ÑΘá∩  ß¿¼ó«½  "r"  ¿½¿  "s"  ó ßó«⌐ »«pΓ.  æ¿¼ó«½ "s" «º¡áτáÑΓ
  1992.      ΓpÑí«óá¡¿Ñ ¡á »ÑpÑñáτπ Σá⌐½á;  ß¿¼ó«½ "r" «º¡áτáÑΓ ΓpÑí«óá¡¿Ñ  ¡á
  1993.      »«½πτÑ¡¿Ñ Σá⌐½á (¿ ß«σpá¡Ñ¡¿Ñ Ñú«) ß »«¼«Θ∞ε Σá⌐½«ó«ú« ßÑαóÑαá.
  1994.  
  1995.      _________________________________________________________________
  1996.  
  1997.           "èÄï£ûÄ"
  1998.  
  1999.                       ┌────┐                  ┌────┐
  2000.                       │░░░░│ ──────────────── │░░░░│
  2001.                     ┌─┴────┴─┐              ┌─┴────┴─┐
  2002.                     └────────┘              └────────┘
  2003.  
  2004.                          │                       │
  2005.                          │                       │
  2006.  
  2007.                       ┌────┐                   ┌────┐
  2008.                       │░░░░│ ────────────────  │░░░░│
  2009.                     ┌─┴────┴─┐               ┌─┴────┴─┐
  2010.                     └────────┘               └────────┘
  2011.  
  2012.      _________________________________________________________________
  2013.  
  2014.              "çéàçäÇ"
  2015.                                 ┌────┐
  2016.                                 │░░░░│
  2017.                               ┌─┴────┴─┐
  2018.                               └────────┘
  2019.  
  2020.                                   │
  2021.                                   │
  2022.             ┌────┐                │               ┌────┐
  2023.             │░░░░│ ────────── öÇëïÄé¢ë ────────── │░░░░│
  2024.           ┌─┴────┴─┐          ÅÉÄûàææÄÉ         ┌─┴────┴─┐
  2025.           └────────┘              │             └────────┘
  2026.                                   │
  2027.                                   │
  2028.  
  2029.                                 ┌────┐
  2030.                                 │░░░░│
  2031.                               ┌─┴────┴─┐
  2032.                               └────────┘
  2033.      _________________________________________________________________
  2034.  
  2035.           É¿ß. 6.1. æÑΓ¿ ¬«½∞µÑó«⌐ ¿ ºóѺñ««ípạ«⌐ Γ«»«½«ú¿¿.
  2036.  
  2037.           Åp¿ pÑú¿ßΓpᵿ¿   »«∩ó½Ñ¡¿∩   ó  «ñ¡«¼  ¿º  »«pΓ«ó  ¼áp¬Ñpá,
  2038.  
  2039.  
  2040.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2041. â½áóá VI                                                     -- 35 --
  2042.  
  2043.  
  2044.      ß««ΓóÑΓßΓóπεΘÑú« ΓpÑí«óá¡¿ε ¡á  »«½πτÑ¡¿Ñ  ¿½¿  »ÑpÑñáτπ  ñá¡¡δσ,
  2045.      Σá⌐½«óδ⌐    ßÑαóÑα    óδ»«½¡∩ÑΓ   Ñú«,   á   ºáΓѼ   «ßπΘÑßΓó½∩ÑΓ
  2046.      »«ß½Ññ«óáΓѽ∞¡δ⌐ ¬«¡Γp«½∞ ß«ßΓ«∩¡¿⌐ óßÑσ  »«ß½Ññ«óáΓѽ∞¡δσ »«pΓ«ó
  2047.      ó «ª¿ñá¡¿¿ ¡«ó«ú« ºá»p«ßá ¡á »ÑpÑß佬π Σá⌐½«ó. é ñÑ⌐ßΓó¿Γѽ∞¡«ßΓ¿
  2048.      »«½πτÑ¡¿Ñ ¿½¿ »ÑpÑñáτá Σá⌐½á ó ßÑΓ¿ íếpπÑΓß∩  ¡á  ¿ß»«½∞º«óá¡¿¿
  2049.      »p«úpá¼¼δ »ÑpѬáτ¬¿ Σá⌐½«ó ¿º »Ñpó«⌐ τáßΓ¿ ú½áóδ.
  2050.  
  2051.           Äß¡«ó¡«⌐ µ¿¬½  páí«Γδ  Σá⌐½«ó«ú«  ßÑαóÑαá  »pÑñßΓáó½Ñ¡ ¡¿ªÑ.
  2052.      ÆÑ¬ßΓδ  »p«úpá¼¼,  óßΓáó½Ñ¡¡δÑ  ó  ó¿ñÑ  ¬«¼¼Ñ¡Γáp¿∩,   »«ºó«½∩εΓ
  2053.      »p«ß½Ññ¿Γ∞ «ß¡«ó¡«⌐ µ¿¬½ páí«Γδ Σá⌐½«ó«ú« ßÑαóÑαá »p¿ »«ñ¬½ετÑ¡¿¿
  2054.      ¬ ¡Ñ¼π ¡«óδσ »«pΓ«ó (¡«óδσ áí«¡Ñ¡Γ«ó ó ßÑΓ∞).
  2055.  
  2056.  
  2057.      main()
  2058.      {
  2059.  
  2060.        printf("Éáí«ΓáÑΓ Σá⌐½«óδ⌐ ßÑαóÑα./n");
  2061.        printf("ä½∩ óδσ«ñᠡ᪼¿ΓÑ ½εíπε ¬½áó¿Φπ./n/n");
  2062.  
  2063.        port_init(PORT); /* ¿¡¿µ¿á½¿ºáµ¿¿ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2064.  
  2065.        do {
  2066.          /*«ª¿ñá¡¿Ñ ºá»p«ßá ¡á «ípáí«Γ¬π Σá⌐½á  */
  2067.          if(check_stat(PORT)&256) {
  2068.            switch(rport(PORT)) {
  2069.              case 's': send_file(PORT);
  2070.                break;
  2071.              case 'r': rec_file(PORT);
  2072.                break;
  2073.            }
  2074.          }
  2075.  
  2076.      /*************************************
  2077.      Åp¿ »«ñ¬½ετÑ¡¿¿ ¡«óδσ páí«τ¿σ ßΓᡵ¿⌐
  2078.      ¬«¡Γp«½∞ ß«ßΓ«∩¡¿∩ ñ«»«½¡¿Γѽ∞¡δσ »«pΓ«ó
  2079.      ¬á¬ »p¿óÑñÑ¡« ¡¿ªÑ...
  2080.  
  2081.          if(check_stat(PORT1)&256) {
  2082.            switch(rport(PORT1)) {
  2083.              case 's': send_file(PORT1);
  2084.                break;
  2085.              case 'r': rec_file(PORT1);
  2086.                break;
  2087.            }
  2088.          }
  2089.      .
  2090.      .
  2091.      .
  2092.          if(check_stat(PORTn)&256) {
  2093.            switch(rport(PORTn)) {
  2094.              case 's': send_file(PORTn);
  2095.                break;
  2096.              case 'r': rec_file(PORTn);
  2097.                break;
  2098.  
  2099.  
  2100.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2101. â½áóá VI                                                     -- 36 --
  2102.  
  2103.  
  2104.            }
  2105.          }
  2106.      ******************************************/
  2107.        } while(!kbhit());
  2108.      }
  2109.  
  2110.           èᬠó¿ñ¿ΓÑ,  Σá⌐½«óδ⌐ ßÑαóÑα páí«ΓáÑΓ Γ«½∞¬« ß «ñ¡«⌐ páí«τÑ⌐
  2111.      ßΓᡵ¿Ñ⌐ (áí«¡Ñ¡Γ«¼ ßÑΓ¿),  «ñ¡á¬«, ¬á¬ π¬áºá¡« ó ¬«¼¼Ñ¡Γáp¿¿, «¡
  2112.      ¼«ªÑΓ páí«ΓáΓ∞ ó »p¿¡µ¿»Ñ ß  N  áí«¡Ñ¡ΓἿ  ßÑΓ¿.  çá¼ÑΓ∞ΓÑ,  τΓ«
  2113.      Σá⌐½«óδ⌐ ßÑαóÑα páí«ΓáÑΓ ñ« ΓÑσ »«p, »«¬á ¡Ñ »«ßΓπ»¿½« »pÑpδóá¡¿⌐
  2114.      ß  ¬½áó¿áΓπpδ.  ¥Γ«  »«ºó«½∩ÑΓ  Ñ¼π  óßÑúñá  íδΓ∞   ó   ß«ßΓ«∩¡¿¿
  2115.      ú«Γ«ó¡«ßΓ¿  «ípáí«Γ¬¿ «τÑpÑñ¡«ú« ΓpÑí«óá¡¿∩ ¡á »ÑpÑñáτπ/»«½πτÑ¡¿Ñ
  2116.      Σá⌐½á.
  2117.  
  2118.           èᬠóδ  ¼«ªÑΓÑ  ó¿ñÑΓ∞,  Σπ¡¬µ¿¿  send_file()  ¿  rec_file()
  2119.      ΓÑ»Ñp∞  «ßπΘÑßΓó½∩εΓ  «ípáí«Γ¬π »«pΓá,  ¬«Γ«pδ⌐ »ÑpÑñáÑΓß∩ ¿¼ ¬á¬
  2120.      ápúπ¼Ñ¡Γ.  ¥Γ«  «íΩ∩ß¡∩ÑΓß∩  ¡Ñ«íσ«ñ¿¼«ßΓ∞ε  «ípáí«Γ¬¿   Σá⌐½«óδ¼
  2121.      ßÑαóÑα«¼  ¼¡«ªÑßΓóá pẽ¿τ¡δσ »«ß½Ññ«óáΓѽ∞¡δσ »«pΓ«ó.  é Σπ¡¬µ¿¿
  2122.      Σá⌐½«ó«ú« ßÑαóÑαá  óσ«ñ¿Γ  ΓᬪѠ »ÑpÑñáτá  ¬ó¿Γ¿pπεΘÑú«  ß¿¼ó«½á
  2123.      áí«¡Ñ¡Γá¼  ó ß½πτáÑ »«½πτÑ¡¿∩ «Γ ¡¿σ ΓpÑí«óá¡¿∩ ¡á »ÑpÑñáτπ Σá⌐½á
  2124.      ó Σá⌐½«óδ⌐ ßÑαóÑα.  î«ñ¿Σ¿¬áµ¿∩ Σπ¡¬µ¿⌐ send_file() ¿  rec_file()
  2125.      ñ½∩ páí«Γδ ó Σá⌐½«ó«¼ ßÑαóÑαÑ »p¿óÑñѡᠡ¿ªÑ.
  2126.  
  2127.  
  2128.  
  2129.      /* ÅÑpѬáτ¬á ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« Σá⌐½á τÑpѺ »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ
  2130.      */
  2131.      void send_file(port)
  2132.      int port;
  2133.      {
  2134.        FILE *fp;
  2135.        char ch, fname[14];
  2136.        union {
  2137.          char c[2];
  2138.          unsigned int count;
  2139.        } cnt;
  2140.  
  2141.        sport(port, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2142.  
  2143.        get_file_name(fname, PORT);
  2144.        if(!(fp=fopen(fname,"rb"))) {
  2145.          printf("éσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  2146.          exit(1);
  2147.        }
  2148.  
  2149.        if(rport(port)!='.') {
  2150.           printf("æí«⌐ »p¿ páí«ΓÑ ß πñá½Ñ¡¡δ¼ Σá⌐½«¼\n");
  2151.           exit(1);
  2152.        }
  2153.  
  2154.        printf("ÅÑpÑßδ½áÑΓß∩ Σá⌐½ %s\n", fname);
  2155.        /* Ä»pÑñѽѡ¿Ñ pẼÑpá Σá⌐½á */
  2156.        cnt.count = filesize(fp);
  2157.        /* ÅÑpÑñáτá pẼÑpá Σá⌐½á */
  2158.  
  2159.  
  2160.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2161. â½áóá VI                                                     -- 37 --
  2162.  
  2163.  
  2164.        sport(port, cnt.c[0]);
  2165.        wait(port);
  2166.  
  2167.        sport(port, cnt.c[1]);
  2168.        do {
  2169.          ch = getc(fp);
  2170.          if(ferror(fp)) {
  2171.             printf("ÄΦ¿í¬á τΓÑ¡¿∩ óσ«ñ¡«ú« Σá⌐½á\n");
  2172.             break;
  2173.          }
  2174.  
  2175.          /*Ī¿ñá¡¿Ñ ú«Γ«ó¡«ßΓ¿ »«½πτáΓѽ∩*/
  2176.          if(!feof(fp)) {
  2177.            wait(port);
  2178.            sport(port, ch);
  2179.          }
  2180.        } while(!feof(fp));
  2181.        wait(port); /*τΓÑ¡¿Ñ »«ß½Ññ¡Ñ⌐ »«pµ¿¿ ñá¡¡δσ ¿º »«pΓá*/
  2182.        fclose(fp);
  2183.      }
  2184.  
  2185.      /*Å«½πτÑ¡¿Ñ Σá⌐½á τÑpѺ »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ*/
  2186.      void rec_file(port)
  2187.      int port;
  2188.      {
  2189.        FILE *fp;
  2190.        char ch, fname[14];
  2191.        union {
  2192.          char c[2];
  2193.          unsigned int count;
  2194.        } cnt;
  2195.  
  2196.        sport(port, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2197.  
  2198.        get_file_name(fname, PORT);
  2199.  
  2200.        printf("Å«½πτÑ¡ Σá⌐½ %s\n", fname);
  2201.        remove(fname);
  2202.        if(!(fp=fopen(fname,"wb"))) {
  2203.          printf("éδσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  2204.          exit(1);
  2205.        }
  2206.  
  2207.        /*ßτ¿Γδóá¡¿Ñ ñ½¿¡δ Σá⌐½á*/
  2208.        sport(port, '.');
  2209.        cnt.c[0] = rport(port);
  2210.        sport(port, '.');
  2211.        cnt.c[1] = rport(port);
  2212.        sport(port, '.');
  2213.  
  2214.        for(; cnt.count; cnt.count--) {
  2215.          ch = rport(port);
  2216.          putc(ch, fp);
  2217.          if(ferror(fp)) {
  2218.  
  2219.  
  2220.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2221. â½áóá VI                                                     -- 38 --
  2222.  
  2223.  
  2224.            printf("ÄΦ¿í¬á »p¿ ºá»¿ß¿ Σá⌐½á\n");
  2225.            exit(1);
  2226.          }
  2227.          sport(port, '.');
  2228.        }
  2229.        fclose(fp);
  2230.      }
  2231.  
  2232.  
  2233.           Å«½¡«ßΓ∞ε »p«úpá¼¼á,  pÑ὿ºπεΘá∩ Σá⌐½«óδ⌐ ßÑαóÑα, »p¿óÑñÑ¡á
  2234.      ¡¿ªÑ.  ¥Γá »p«úpἼᠿ߻«½∞ºπÑΓ »«pΓ ß ¿¼Ñ¡Ñ¼ 0.  Äñ¡á¬«, Ñß½¿ óδ
  2235.      ¿¼ÑÑΓÑ í«½ÑÑ «ñ¡«ú« áí«¡Ñ¡Γá ó ßÑΓ¿,  Γ« óδ ñ«½ª¡δ ñ«íáó¿Γ∞ ó φΓπ
  2236.      »p«úpá¼¼π ß««ΓóÑΓßΓóπεΘ¿Ñ «»ÑpáΓ«pδ ( ß¼.  «ß¡«ó¡«⌐ páí«τ¿⌐  µ¿¬½
  2237.      Σá⌐½«ó«ú« ßÑαóÑαá ) ñ½∩ «ípáí«Γ¬¿ »«pΓá ¡«ó«ú« áí«¡Ñ¡Γá.
  2238.  
  2239.  
  2240.      /* Åp«ßΓÑ⌐Φ¿⌐ Σá⌐½«óδ⌐ ßÑαóÑα ïéæ. Åápá¼ÑΓpδ »«pΓá:
  2241.                ß¬«p«ßΓ∞ »ÑpÑñáτ¿ - 9600 í«ñ,
  2242.                ¬«¡Γp«½∞ τÑΓ¡«ßΓ¿       ó䬽. ,
  2243.                ó«ßѼ∞ í¿Γ ñá¡¡δσ,
  2244.                ñóá ºáóÑpΦáεΘ¿σ ßΓ«»-í¿Γá.
  2245.      */
  2246.  
  2247.      #define PORT 0
  2248.  
  2249.      #include "dos.h"
  2250.      #include "stdio.h"
  2251.  
  2252.      unsigned int filesize();
  2253.      void sport(), send_file(), rec_file(), send_file_name();
  2254.      void get_file_name(), port_init(), wait();
  2255.  
  2256.      main()
  2257.      {
  2258.  
  2259.        printf("Éáí«ΓáÑΓ Σá⌐½«óδ⌐ ßÑαóÑα.\n");
  2260.        printf("ä½∩ óδσ«ñᠡ᪼¿ΓÑ ½εíπε ¬½áó¿Φπ./n/n");
  2261.  
  2262.  
  2263.        port_init(PORT); /* ¿¡¿µ¿á½¿ºáµ¿¿ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2264.  
  2265.        do {
  2266.         /*«ª¿ñá¡¿Ñ ºá»p«ßá ¡á «ípáí«Γ¬π Σá⌐½á*/
  2267.         if(check_stat(PORT)&256) {
  2268.           switch(rport(PORT)) {
  2269.              case 's': send_file(PORT);
  2270.                break;
  2271.              case 'r': rec_file(PORT);
  2272.                break;
  2273.            }
  2274.          }
  2275.      /*****************************************
  2276.      Åp¿ »«ñ¬½ετÑ¡¿¿ ¡«óδσ páí«τ¿σ ßΓᡵ¿⌐
  2277.      ¬«¡Γp«½∞ ß«ßΓ«∩¡¿∩ ñ«»«½¡. »«pΓ«ó, ¬á¬
  2278.  
  2279.  
  2280.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2281. â½áóá VI                                                     -- 39 --
  2282.  
  2283.  
  2284.      »p¿óÑñÑ¡« ¡¿ªÑ...
  2285.  
  2286.         if(check_stat(PORT1)&256) {
  2287.           switch(rport(PORT1)) {
  2288.              case 's': send_file(PORT1);
  2289.                break;
  2290.              case 'r': rec_file(PORT1);
  2291.                break;
  2292.            }
  2293.          }
  2294.      .
  2295.      .
  2296.      .
  2297.         if(check_stat(PORTn)&256) {
  2298.           switch(rport(PORTn)) {
  2299.              case 's': send_file(PORTn);
  2300.                break;
  2301.              case 'r': rec_file(PORTn);
  2302.                break;
  2303.            }
  2304.          }
  2305.      ******************************************/
  2306.        } while(!kbhit());
  2307.      }
  2308.  
  2309.      /* ÅÑpѬáτ¬á ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« Σá⌐½á τÑpѺ »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ
  2310.      */
  2311.      void send_file(port)
  2312.      int port;
  2313.      {
  2314.        FILE *fp;
  2315.        char ch, fname[14];
  2316.        union {
  2317.          char c[2];
  2318.          unsigned int count;
  2319.        } cnt;
  2320.  
  2321.        sport(port, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2322.  
  2323.        get_file_name(fname, PORT);
  2324.        if(!(fp=fopen(fname,"rb"))) {
  2325.          printf("éσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  2326.          exit(1);
  2327.        }
  2328.  
  2329.        if(rport(port)!='.') {
  2330.           printf("æí«⌐ »p¿ páí«ΓÑ ß πñá½Ñ¡¡δ¼ Σá⌐½«¼\n");
  2331.           exit(1);
  2332.        }
  2333.  
  2334.        printf("ÅÑpÑßδ½áÑΓß∩ Σá⌐½ %s\n", fname);
  2335.        /* Ä»pÑñѽѡ¿Ñ pẼÑpá Σá⌐½á */
  2336.        cnt.count = filesize(fp);
  2337.        /* ÅÑpÑñáτá pẼÑpá Σá⌐½á */
  2338.  
  2339.  
  2340.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2341. â½áóá VI                                                     -- 40 --
  2342.  
  2343.  
  2344.        sport(port, cnt.c[0]);
  2345.        wait(port);
  2346.  
  2347.        sport(port, cnt.c[1]);
  2348.        do {
  2349.          ch = getc(fp);
  2350.          if(ferror(fp)) {
  2351.             printf("ÄΦ¿í¬á τΓÑ¡¿∩ óσ«ñ¡«ú« Σá⌐½á\n");
  2352.             break;
  2353.          }
  2354.  
  2355.          /*Ī¿ñá¡¿Ñ ú«Γ«ó¡«ßΓ¿ »«½πτáΓѽ∩*/
  2356.          if(!feof(fp)) {
  2357.            wait(port);
  2358.            sport(port, ch);
  2359.          }
  2360.        } while(!feof(fp));
  2361.        wait(port); /*τΓÑ¡¿Ñ »«ß½Ññ¡Ñ⌐ »«pµ¿¿ ñá¡¡δσ ¿º »«pΓá*/
  2362.        fclose(fp);
  2363.      }
  2364.  
  2365.      /*ÅÑpÑñáτá ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« Σá⌐½á τÑpѺ »«ß½Ññ«óáΓѽ∞¡δ⌐
  2366.      »«pΓ.*/
  2367.      void rec_file(port)
  2368.      int port;
  2369.      {
  2370.        FILE *fp;
  2371.        char ch, fname[14];
  2372.        union {
  2373.          char c[2];
  2374.          unsigned int count;
  2375.        } cnt;
  2376.  
  2377.        sport(port, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2378.  
  2379.        get_file_name(fname, PORT);
  2380.  
  2381.        printf("Å«½πτÑ¡ Σá⌐½ %s\n", fname);
  2382.        remove(fname);
  2383.        if(!(fp=fopen(fname,"wb"))) {
  2384.          printf("éδσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  2385.          exit(1);
  2386.        }
  2387.  
  2388.        /*ßτ¿Γδóá¡¿Ñ ñ½¿¡δ Σá⌐½á*/
  2389.        sport(port, '.');
  2390.        cnt.c[0] = rport(port);
  2391.        sport(port, '.');
  2392.        cnt.c[1] = rport(port);
  2393.        sport(port, '.');
  2394.  
  2395.        for(; cnt.count; cnt.count--) {
  2396.          ch = rport(port);
  2397.          putc(ch, fp);
  2398.  
  2399.  
  2400.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2401. â½áóá VI                                                     -- 41 --
  2402.  
  2403.  
  2404.          if(ferror(fp)) {
  2405.            printf("ÄΦ¿í¬á »p¿ ºá»¿ß¿ Σá⌐½á\n");
  2406.            exit(1);
  2407.          }
  2408.          sport(port, '.');
  2409.        }
  2410.        fclose(fp);
  2411.      }
  2412.  
  2413.      /* é«ºópáΘÑ¡¿Ñ º¡áτÑ¡¿∩ ñ½¿¡δ Σá⌐½á ó íá⌐Γáσ */
  2414.      unsigned int filesize(fp)
  2415.      FILE *fp;
  2416.      {
  2417.        unsigned long int i;
  2418.  
  2419.        i = 0;
  2420.        do {
  2421.          getc(fp);
  2422.          i++;
  2423.        } while(!feof(fp));
  2424.        rewind(fp);
  2425.        return (i-1); /* ìÑ ßτ¿Γá∩ ß¿¼ó«½ EOF */
  2426.      }
  2427.  
  2428.      /* ÅÑpѬáτ¬á ¿¼Ñ¡¿ Σá⌐½á */
  2429.      void send_file_name(f, port)
  2430.      char *f;
  2431.      int port;
  2432.      {
  2433.        do {
  2434.          sport(port, '?');
  2435.        } while(!kbhit() && !(check_stat(port)&256));
  2436.        if(kbhit()) {
  2437.          getch();
  2438.          exit(1);
  2439.        }
  2440.        wait(port);
  2441.  
  2442.        while(*f) {
  2443.          sport(port, *f++);
  2444.  
  2445.          wait(port); /* «ª¿ñá¡¿Ñ »«½πτÑ¡¿∩ ¬ó¿Γ¿pπεΘÑú« íá⌐Γá  */
  2446.        }
  2447.        sport(port, 0); /* ß¿¼ó«½ ¬«¡µá ßΓp«¬¿ */
  2448.      }
  2449.  
  2450.      /* Å«½πτÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á */
  2451.      void get_file_name(f, port)
  2452.      char *f;
  2453.      int port;
  2454.      {
  2455.  
  2456.        while(rport(port)!='?') printf(".");
  2457.        sport(port, '.');
  2458.  
  2459.  
  2460.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2461. â½áóá VI                                                     -- 42 --
  2462.  
  2463.  
  2464.        while((*f=rport(port))) {
  2465.          if(*f!='?') {
  2466.            f++;
  2467.            sport(port, '.');
  2468.          }
  2469.         }
  2470.         sport(port, '.');
  2471.       }
  2472.  
  2473.      /* «ª¿ñá¡¿Ñ «ΓóÑΓá */
  2474.      void wait(port)
  2475.      int port;
  2476.      {
  2477.        if(rport(port)!='.') {
  2478.          printf("«Φ¿í¬á πßΓá¡«ó½Ñ¡¿∩ ßó∩º¿ \n");
  2479.          exit(1);
  2480.        }
  2481.      }
  2482.  
  2483.      /* ÅÑpÑñáτá ß¿¼ó«½á ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2484.      void sport(port, c)
  2485.      int port;                 /* »«pΓ óó«ñá/óδó«ñá */
  2486.      char c;                   /* »ÑpÑñáóáѼδ⌐ ß¿¼ó«½ */
  2487.      {
  2488.        union REGS r;
  2489.  
  2490.        r.x.dx = port;          /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  2491.        r.h.al = c;             /* »ÑpÑñáóáѼδ⌐ ß¿¼ó«½ */
  2492.        r.h.ah = 1;             /* »ÑpÑß佬á ß¿¼ó«½á Σπ¡¬µ¿¿ */
  2493.        int86(0x14, &r, &r);
  2494.        if(r.h.ah & 128) {      /* ¬«¡Γp«½∞ 7-ú« í¿Γá */
  2495.        printf("Äí¡ápπªÑ¡á «Φ¿í¬á »ÑpÑñáτ¿ ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ ");
  2496.        printf("%d",r.h.ah);
  2497.          exit(1);
  2498.        }
  2499.      }
  2500.  
  2501.      /* ùΓÑ¡¿Ñ ß¿¼ó«½á ¿º »«pΓá */
  2502.      rport(port)
  2503.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  2504.      {
  2505.        union REGS r;
  2506.        /* Äª¿ñá¡¿Ñ »p¿σ«ñá ß¿¼ó«½á */
  2507.      while(!(check_stat(port)&256))
  2508.        if(kbhit()) { /* óδσ«ñ »« »pÑpδóá¡¿ε «Γ ¬½áó¿áΓπpδ */
  2509.          getch();
  2510.          exit(1);
  2511.        }
  2512.  
  2513.      r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  2514.      r.h.ah = 2;    /* Σπ¡¬µ¿∩ τΓÑ¡¿∩ ß¿¼ó«½á */
  2515.      int86(0x14, &r, &r);
  2516.      if(r.h.ah & 128)
  2517.        printf("é »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ «í¡ápπªÑ¡á «Φ¿í¬á τΓÑ¡¿∩");
  2518.  
  2519.  
  2520.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2521. â½áóá VI                                                     -- 43 --
  2522.  
  2523.  
  2524.      return r.h.al;
  2525.      }
  2526.  
  2527.      /* Åp«óÑp¬á ß«ßΓ«∩¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2528.      check_stat(port)
  2529.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  2530.      {
  2531.        union REGS r;
  2532.  
  2533.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ  */
  2534.        r.h.ah = 3;    /* τΓÑ¡¿Ñ ß«ßΓ«∩¡¿∩ */
  2535.        int86(0x14, &r, &r);
  2536.        return r.x.ax;
  2537.      }
  2538.  
  2539.      /* ¿¡¿µ¿á½¿ºáµ¿∩ »«pΓá ß »ápá¼ÑΓpἿ:
  2540.      ß¬«p«ßΓ∞ »ÑpÑñáτ¿ 9600 í«ñ, ñóá ßΓ«»-í¿Γá,
  2541.      ¬«¡Γp«½∞ ¡á τÑΓ¡«ßΓ∞  ó䬽., 8 í¿Γ ñá¡¡δσ.
  2542.      */
  2543.      void port_init(port)
  2544.      int port;
  2545.      {
  2546.        union REGS r;
  2547.  
  2548.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  2549.        r.h.ah = 0;    /* Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿ »«pΓá*/
  2550.        r.h.al = 231; /* ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿ - ß¼. óδΦÑ */
  2551.        int86(0x14, &r, &r);
  2552.      }
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560.  
  2561.  
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2581. â½áóá VI                                                     -- 44 --
  2582.  
  2583.  
  2584.                     çÇâÉôçèÇ ôäÇïàìì¢ò öÇëïÄé é ôçàï æàÆê
  2585.      -----------------------------------------------------------------
  2586.  
  2587.           ä½∩ Γ«ú«,  τΓ«íδ  páí«τá∩ ßΓᡵ¿∩ ¿¡¿µ¿¿p«óá½á ΓpÑí«óá¡¿∩ ¡á
  2588.      »«½πτÑ¡¿Ñ Σá⌐½á ¿º Σá⌐½«ó«ú« ßÑαóÑαá ¿  Ñú«  ºáúpπº¬π,  ΓpÑíπÑΓß∩
  2589.      ó맮ó  ß»Ñµ¿á½∞¡«⌐  »p«úpá¼¼δ.  ¥Γá »p«úpá¼¼á óδºδóáÑΓß∩ »« ¿¼Ñ¡¿
  2590.      GET ¿ óδ»«½¡∩ÑΓß∩ páí«τÑ⌐ ßΓᡵ¿Ñ⌐,  ¬«Γ«pá∩ ¡πªñáÑΓß∩ ó  ñá¡¡δσ.
  2591.      éδ   ¼«ªÑΓÑ   «púá¡¿º«óáΓ∞   ó맮ó  φΓ«⌐  »p«úpá¼¼δ  ¬á¬  ¬«¼á¡ñδ
  2592.      páßΦ¿pÑ¡¡«ú« ¡áí«pá ¬«¼á¡ñ DOS.  Äß¡«ó¡«⌐ Σ«p¼«⌐ ó맮óá »p«úpá¼¼δ
  2593.      GET ∩ó½∩ÑΓß∩ ß½ÑñπεΘ¿⌐:
  2594.  
  2595.                               GET <¿¼∩_Σá⌐½á>
  2596.  
  2597.           úñÑ <¿¼∩_Σá⌐½á> - ¿¼∩ ºáúpπªáѼ«ú« Σá⌐½á.
  2598.  
  2599.           Åp«µÑßß Σπ¡¬µ¿«¡¿p«óá¡¿∩  Σπ¡¬µ¿¿  GET  ¿¼ÑÑΓ ñóá «Γ½¿τ¿∩ «Γ
  2600.      »p«µÑßßá Σπ¡¬µ¿«¡¿p«óá¡¿∩ ñpπú¿σ Σπ¡¬µ¿⌐,  ¿ß»«½∞ºπεΘ¿σ  Σá⌐½«óδ⌐
  2601.      ßÑαóÑα.
  2602.  
  2603.           é«-»Ñpóδσ Σπ¡¬µ¿∩ rec_file() »ÑpÑßδ½áÑΓ ¿¼∩ Σá⌐½á ¬«¼»∞εΓÑpπ
  2604.      -»«½πτáΓѽε.
  2605.  
  2606.           é«-óΓ«pδσ, ¿¼∩ »«pΓá ªÑßΓ¬« ¬«ñ¿pπÑΓß∩ ó »«ñ»p«úpá¼¼áσ, á ¡Ñ
  2607.      »ÑpÑñáÑΓß∩ »«ñ»p«úpἼἠó ¬áτÑßΓóÑ ápúπ¼Ñ¡Γá, ¬á¬ φΓ« ñѽáÑΓß∩ ó
  2608.      Σá⌐½«ó«¼ ßÑαóÑαÑ.
  2609.  
  2610.           Å«½¡δ⌐ ΓѬßΓ »p«úpá¼¼δ GET »pÑñßΓáó½Ñ¡ ¡¿ªÑ.
  2611.  
  2612.  
  2613.      /* çáúpπº¬á Σá⌐½á ¿º Σá⌐½«ó«ú« ßÑαóÑαá. */
  2614.  
  2615.      #define PORT 0
  2616.  
  2617.      #include "dos.h"
  2618.      #include "stdio.h"
  2619.  
  2620.      void sport(), send_file(), rec_file(), send_file_name();
  2621.      void get_file_name(), port_init(), wait();
  2622.  
  2623.      main(argc,argv)
  2624.      int argc;
  2625.      char *argv[];
  2626.      {
  2627.        if(argc!=2) {
  2628.          printf(" êß»«½∞ºπ⌐ΓÑ Σ«p¼áΓ: GET <¿¼∩ Σá⌐½á>\n");
  2629.          exit(1);
  2630.        }
  2631.  
  2632.        port_init(PORT); /* ¿¡¿µ¿á½¿ºáµ¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2633.  
  2634.          rec_file(argv[1]);
  2635.        }
  2636.        /*Å«½πτÑ¡¿Ñ Σá⌐½á*/
  2637.      void rec_file(fname)
  2638.  
  2639.  
  2640.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2641. â½áóá VI                                                     -- 45 --
  2642.  
  2643.  
  2644.      char *fname;
  2645.      {
  2646.        FILE *fp;
  2647.        char ch;
  2648.        union {
  2649.          char c[2];
  2650.          unsigned int count;
  2651.        } cnt;
  2652.  
  2653.        printf("çáúpπªáÑΓß∩ Σá⌐½ %s\n", fname);
  2654.        remove(fname);
  2655.        if(!(fp=fopen(fname,"wb"))) {
  2656.          printf("éδσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  2657.          exit(1);
  2658.        }
  2659.  
  2660.        sport(PORT, 's');     /*ÅÑpÑñáτá ßÑαóÑαπ ¼áp¬Ñpá
  2661.                                "ú«Γ«ó ¬ »p¿Ñ¼π Σá⌐½á"*/
  2662.        wait(PORT);         /* Äª¿ñá¡¿Ñ ú«Γ«ó¡«ßΓ¿ ßÑαóÑαá */
  2663.  
  2664.        /* Å«½πτÑ¡¿Ñ ñ½¿¡δ Σá⌐½á */
  2665.        send_file_name(fname);
  2666.  
  2667.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2668.        cnt.c[0] = rport(PORT);
  2669.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2670.        cnt.c[1] = rport(PORT);
  2671.        sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2672.  
  2673.        for(; cnt.count; cnt.count--) {
  2674.          ch = rport(PORT);
  2675.          putc(ch, fp);
  2676.          if(ferror(fp)) {
  2677.            printf("«Φ¿í¬á ºá»¿ß¿ ó Σá⌐½ ");
  2678.            exit(1);
  2679.          }
  2680.          sport(PORT, '.'); /* ¬ó¿Γ¿p«óá¡¿Ñ */
  2681.        }
  2682.        fclose(fp);
  2683.      }
  2684.  
  2685.      /* ÅÑpѬáτ¬á ¿¼Ñ¡¿ Σá⌐½á */
  2686.      void send_file_name(f)
  2687.      char *f;
  2688.      {
  2689.        do {
  2690.          sport(PORT, '?');
  2691.        } while(!kbhit() && !(check_stat(PORT)&256));
  2692.        if(kbhit()) {
  2693.          getch();
  2694.          exit(1);
  2695.        }
  2696.        wait(PORT);
  2697.  
  2698.  
  2699.  
  2700.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2701. â½áóá VI                                                     -- 46 --
  2702.  
  2703.  
  2704.        while(*f) {
  2705.          sport(PORT, *f++);
  2706.          wait(PORT);
  2707.        }
  2708.        sport(PORT, '\0'); /* ß¿¼ó«½ ¬«¡µá ßΓp«¬¿ */
  2709.        wait(PORT);
  2710.      }
  2711.      /*Ī¿ñá¡¿Ñ «ΓóÑΓá (¬ó¿Γ¿p«óá¡¿∩)*/
  2712.      void wait(port)
  2713.      int port;
  2714.      {
  2715.        if(rport(port)!='.') {
  2716.          printf("«Φ¿í¬á πßΓá¡«ó½Ñ¡¿∩ ßó∩º¿ \n");
  2717.          exit(1);
  2718.        }
  2719.      }
  2720.  
  2721.      /* ÅÑpÑñáτá ß¿¼ó«½á ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2722.      void sport(port, c)
  2723.      int port;                 /* »«pΓ óó«ñá/óδó«ñá */
  2724.      char c;                   /* »ÑpÑñáóáѼδ⌐ ß¿¼ó«½ */
  2725.      {
  2726.        union REGS r;
  2727.  
  2728.        r.x.dx = port;          /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  2729.        r.h.al = c;             /* »ÑpÑñáóáѼδ⌐ ß¿¼ó«½ */
  2730.        r.h.ah = 1;             /* »ÑpÑß佬á ß¿¼ó«½á Σπ¡¬µ¿¿ */
  2731.        int86(0x14, &r, &r);
  2732.        if(r.h.ah & 128) {      /* ¬«¡Γp«½∞ 7-ú« í¿Γá */
  2733.        printf("Äí¡ápπªÑ¡á «Φ¿í¬á »ÑpÑñáτ¿ ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ ");
  2734.        printf("%d",r.h.ah);
  2735.          exit(1);
  2736.        }
  2737.      }
  2738.  
  2739.      /* ùΓÑ¡¿Ñ ß¿¼ó«½á ¿º »«pΓá */
  2740.      rport(port)
  2741.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  2742.      {
  2743.        union REGS r;
  2744.  
  2745.        /* Äª¿ñá¡¿Ñ »p¿σ«ñá ß¿¼ó«½á */
  2746.      while(!(check_stat(port)&256))
  2747.        if(kbhit()) {
  2748.          getch();
  2749.          exit(1);
  2750.        }
  2751.  
  2752.      r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  2753.      r.h.ah = 2;    /* Σπ¡¬µ¿∩ τΓÑ¡¿∩ ß¿¼ó«½á */
  2754.      int86(0x14, &r, &r);
  2755.      if(r.h.ah & 128)
  2756.        printf("ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ «í¡ápπªÑ¡á «Φ¿í¬á τΓÑ¡¿∩");
  2757.      return r.h.al;
  2758.  
  2759.  
  2760.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2761. â½áóá VI                                                     -- 47 --
  2762.  
  2763.  
  2764.      }
  2765.  
  2766.      /* Åp«óÑp¬á ß«ßΓ«∩¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2767.      check_stat(port)
  2768.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  2769.      {
  2770.        union REGS r;
  2771.  
  2772.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ  */
  2773.        r.h.ah = 3;    /* τΓÑ¡¿Ñ ß«ßΓ«∩¡¿∩ */
  2774.        int86(0x14, &r, &r);
  2775.        return r.x.ax;
  2776.      }
  2777.  
  2778.      /* ¿¡¿µ¿á½¿ºáµ¿∩ »«pΓá ß »ápá¼ÑΓpἿ:
  2779.      ß¬«p«ßΓ∞ »ÑpÑñáτ¿ 9600 í«ñ, ñóá ßΓ«»-í¿Γá,
  2780.      ¬«¡Γp«½∞ ¡á τÑΓ¡«ßΓ∞  ó䬽., 8 í¿Γ ñá¡¡δσ.
  2781.      */
  2782.      void port_init(port)
  2783.      int port;
  2784.      {
  2785.        union REGS r;
  2786.  
  2787.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  2788.        r.h.ah = 0;    /* Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿ »«pΓá*/
  2789.        r.h.al = 231; /* ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿ - ß¼. óδΦÑ */
  2790.        int86(0x14, &r, &r);
  2791.      }
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2821. â½áóá VI                                                     -- 48 --
  2822.  
  2823.  
  2824.                             òÉÇìàìêà öÇëïÄé
  2825.      -----------------------------------------------------------------
  2826.  
  2827.           é í«½∞Φ¿¡ßΓóÑ ßÑΓÑ⌐ Σá⌐½δ ¼«úπΓ  ¡Ñ  Γ«½∞¬«  »ÑpÑßδ½áΓ∞ß∩  ó
  2828.      πºÑ½ ßÑΓ¿ «Γ Σá⌐½«ó«ú« ßÑαóÑαá ñ½∩ «ípáí«Γ¬¿, ¡« ¿ »ÑpÑßδ½áΓ∞ß∩ ó
  2829.      «ípáΓ¡«¼ »«p∩ñ¬Ñ - «Γ áí«¡Ñ¡Γá ßÑΓ¿ ó ßÑαóÑα  ñ½∩  σpá¡Ñ¡¿∩.  ä½∩
  2830.      »«ññÑpª¬¿  φΓ¿σ  ó«º¼«ª¡«ßΓÑ⌐  íδ½á  páºpáí«Γá¡á  »p«úpἼᠠPUT.
  2831.      Åp«úpá¼¼á PUT óδ»«½¡∩ÑΓß∩  ó  πº½Ñ  ßÑΓ¿  ¡á  páí«τÑ⌐  ßΓᡵ¿¿  ¿
  2832.      «ßπΘÑßΓó½∩ÑΓ  »ÑpѬáτ¬π  Σá⌐½«ó  ¿º  πº½á ßÑΓ¿ ó Σá⌐½«óδ⌐ ßÑαóÑα.
  2833.      êß»«½∞º«óá¡¿Ñ φΓ«⌐ »p«úpá¼¼δ á¡á½«ú¿τ¡«  ¿ß»«½∞º«óá¡¿ε  »p«úpá¼¼δ
  2834.      GET  (ºá  ¿ß¬½ετÑ¡¿Ñ¼  Γ«ú«,  τΓ«  óδ»«½¡∩ѼδÑ  ¿¼¿ Σπ¡¬µ¿¿ »p∩¼«
  2835.      »p«Γ¿ó«»«½«ª¡δ). é«Γ «ß¡«ó¡«⌐ Σ«p¼áΓ ó맮óá »p«úpá¼¼δ:
  2836.  
  2837.                               PUT <¿¼∩_Σá⌐½á>
  2838.  
  2839.           Åp«µÑßß óδ»«½¡Ñ¡¿∩  »p«úpá¼¼δ   PUT   ß«óÑpΦÑ¡¡«   ¿ñÑ¡Γ¿τÑ¡
  2840.      »p«µÑßßπ   óδ»«½¡Ñ¡¿∩   »p«úpá¼¼δ,   pÑΦáεΘÑ⌐   ºáñáτπ  »ÑpѬáτ¬¿
  2841.      »p«úpá¼¼¡δσ Σá⌐½«ó.
  2842.  
  2843.           Å«½¡δ⌐ ΓѬßΓ »p«úpá¼¼δ PUT »p¿óÑñÑ¡ ¡¿ªÑ.
  2844.  
  2845.  
  2846.      #define PORT 0
  2847.  
  2848.      #include "dos.h"
  2849.      #include "stdio.h"
  2850.  
  2851.      unsigned int filesize();
  2852.      void sport(), send_file(), send_file_name();
  2853.      void wait(), port_init(), wait();
  2854.  
  2855.      main(argc,argv)
  2856.      int argc;
  2857.      char *argv[];
  2858.      {
  2859.        if(argc!=2) {
  2860.          printf(" êß»«½∞ºπ⌐ΓÑ Σ«p¼áΓ GET <¿¼∩ Σá⌐½á>\n");
  2861.          exit(1);
  2862.        }
  2863.  
  2864.        port_init(PORT); /* ¿¡¿µ¿á½¿ºáµ¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2865.  
  2866.        send_file(argv[1]);
  2867.        }
  2868.  
  2869.      /* »ÑpѬáτ¬á ß»Ñµ¿Σ¿µ¿p«óá¡¡«ú« Σá⌐½á */
  2870.      void send_file(fname)
  2871.      char *fname;
  2872.      {
  2873.        FILE *fp;
  2874.        char ch;
  2875.        union {
  2876.          char c[2];
  2877.          unsigned int count;
  2878.  
  2879.  
  2880.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2881. â½áóá VI                                                     -- 49 --
  2882.  
  2883.  
  2884.        } cnt;
  2885.  
  2886.        if(!(fp=fopen(fname,"rb"))) {
  2887.          printf("éσ«ñ¡«⌐ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬pδΓ\n");
  2888.          exit(1);
  2889.        }
  2890.        printf("ÅÑpÑßδ½áÑΓß∩ Σá⌐½ %s\n", fname);
  2891.  
  2892.      /* ÆpÑíπÑΓß∩ Σá⌐½«óδ⌐ ßÑαóÑα.*/
  2893.        sport(PORT, 'r'); /* ¼áp¬Ñp ú«Γ«ó¡«ßΓ¿ ¬ »ÑpÑßδ½¬Ñ Σá⌐½á
  2894.                             ¿º πº½á */
  2895.        wait(PORT);/*«ª¿ñá¡¿Ñ ú«Γ«ó¡«ßΓ¿ Σá⌐½«ó«ú« ßÑαóÑαá.*/
  2896.  
  2897.        send_file_name(fname);  /* »ÑpÑñáτá ¿¼Ñ¡¿ Σá⌐½á */
  2898.  
  2899.        if(rport(PORT)!='.') {
  2900.          printf("æí«⌐ »p¿ páí«ΓÑ ß πñá½Ñ¡¡δ¼ Σá⌐½«¼\n");
  2901.          exit(1);
  2902.        }
  2903.  
  2904.       /* óδτ¿ß½Ñ¡¿Ñ pẼÑpá óδσ«ñ¡«ú« Σá⌐½á */
  2905.        cnt.count = filesize(fp);
  2906.  
  2907.        /* »ÑpÑñáτá pẼÑpá Σá⌐½á*/
  2908.        sport(PORT, cnt.c[0]);
  2909.        wait(PORT);
  2910.        sport(PORT, cnt.c[1]);
  2911.  
  2912.        do {
  2913.          ch = getc(fp);
  2914.          if(ferror(fp)) {
  2915.            printf(" ÄΦ¿í¬á τΓÑ¡¿∩ óδσ«ñ¡«ú« Σá⌐½á\n");
  2916.            break;
  2917.          }
  2918.  
  2919.          /* «ª¿ñá¡¿Ñ ú«Γ«ó¡«ßΓ¿ »«pΓá-»p¿Ñ¼¡¿¬á */
  2920.          if(!feof(fp)) {
  2921.            wait(PORT);
  2922.            sport(PORT, ch);
  2923.          }
  2924.        } while(!feof(fp));
  2925.        wait(PORT);/* τΓÑ¡¿Ñ »«ß½Ññ¡Ñ⌐ »«pµ¿¿ ¿º »«pΓá*/
  2926.        fclose(fp);
  2927.      }
  2928.  
  2929.      /* é«ºópáΘÑ¡¿Ñ º¡áτÑ¡¿∩ ñ½¿¡δ Σá⌐½á ó íá⌐Γáσ */
  2930.      unsigned int filesize(fp)
  2931.      FILE *fp;
  2932.      {
  2933.        unsigned long int i;
  2934.  
  2935.        i = 0;
  2936.        do {
  2937.          getc(fp);
  2938.  
  2939.  
  2940.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  2941. â½áóá VI                                                     -- 50 --
  2942.  
  2943.  
  2944.          i++;
  2945.        } while(!feof(fp));
  2946.        rewind(fp);
  2947.        return (i-1); /* ìÑ ßτ¿Γá∩ ß¿¼ó«½ EOF */
  2948.      }
  2949.  
  2950.      /* ÅÑpѬáτ¬á ¿¼Ñ¡¿ Σá⌐½á */
  2951.      void send_file_name(f)
  2952.      char *f;
  2953.      {
  2954.        do {
  2955.           sport(PORT, '?');
  2956.        } while(!kbhit() && !(check_stat(PORT)&256));
  2957.        if(kbhit()) {
  2958.          getch();
  2959.          exit(1);
  2960.        }
  2961.        wait(PORT);
  2962.  
  2963.        while(*f) {
  2964.          sport(PORT, *f++);
  2965.          wait(PORT);
  2966.        }
  2967.        sport(PORT, '\0'); /* ß¿¼ó«½ ¬«¡µá ßΓp«¬¿ */
  2968.        wait(PORT);
  2969.      }
  2970.  
  2971.      /* «ª¿ñá¡¿Ñ «ΓóÑΓá */
  2972.      void wait(port)
  2973.      int port;
  2974.      {
  2975.        if(rport(port)!='.') {
  2976.          printf("ÄΦ¿í¬á πßΓá¡«ó½Ñ¡¿∩ ßó∩º¿ \n");
  2977.          exit(1);
  2978.        }
  2979.      }
  2980.  
  2981.      /* ÅÑpÑñáτá ß¿¼ó«½á ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  2982.      void sport(port, c)
  2983.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  2984.      char c;   /* »ÑpÑßδ½áѼδ⌐ ß¿¼ó«½ */
  2985.      {
  2986.        union REGS r;
  2987.  
  2988.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  2989.        r.h.al = c; /* ß¿¼ó«½ ñ½∩ »ÑpÑñáτ¿ */
  2990.        r.h.ah = 1; /* Σπ¡¬µ¿∩ »ÑpÑñáτ¿ ß¿¼ó«½á */
  2991.        int86(0x14, &r, &r);
  2992.        if(r.h.ah & 128) {
  2993.        printf("ÄΦ¿í¬á »ÑpÑñáτ¿ ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ %d",r.h.ah);
  2994.          exit(1);
  2995.        }
  2996.      }
  2997.  
  2998.  
  2999.  
  3000.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  3001. â½áóá VI                                                     -- 51 --
  3002.  
  3003.  
  3004.      /* τΓÑ¡¿Ñ ß¿¼ó«½á ¿º »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  3005.      rport(port)
  3006.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  3007.      {
  3008.        union REGS r;
  3009.  
  3010.        /* «ª¿ñá¡¿Ñ ß¿¼ó«½á */
  3011.        while(!(check_stat(PORT)&256))
  3012.          if(kbhit()) {
  3013.            getch();
  3014.            exit(1);
  3015.          }
  3016.  
  3017.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  3018.        r.h.ah = 2; /* Σπ¡¬µ¿∩ τΓÑ¡¿∩ ß¿¼ó«½á  */
  3019.        int86(0x14, &r, &r);
  3020.        if(r.h.ah & 128)
  3021.          printf(" «Φ¿í¬á τΓÑ¡¿∩ ó »«ß½Ññ«óáΓѽ∞¡«¼ »«pΓπ ");
  3022.        return r.h.al;
  3023.      }
  3024.  
  3025.      /* ¬«¡Γp«½∞ ß«ßΓ«∩¡¿∩ »«ß½Ññ«óáΓѽ∞¡«ú« »«pΓá */
  3026.      cheek_stat(port)
  3027.      int port; /* »«pΓ óó«ñá/óδó«ñá */
  3028.      {
  3029.        union REGS r;
  3030.  
  3031.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ  */
  3032.        r.h.ah = 3;    /* τΓÑ¡¿Ñ ß«ßΓ«∩¡¿∩ */
  3033.        int86(0x14, &r, &r);
  3034.        return r.x.ax;
  3035.      }
  3036.  
  3037.      /* ¿¡¿µ¿á½¿ºáµ¿∩ »«pΓá »ápá¼ÑΓpἿ:
  3038.                ß¬«p«ßΓ∞ »ÑpÑñáτ¿ - 9600 í«ñ,
  3039.                ¬«¡Γp«½∞ τÑΓ¡«ßΓ¿       ó䬽. ,
  3040.                ó«ßѼ∞ í¿Γ ñá¡¡δσ,
  3041.                ñóá ºáóÑpΦáεΘ¿σ ßΓ«»-í¿Γá.
  3042.      */
  3043.      void port_init(port)
  3044.      int port;
  3045.      {
  3046.        union REGS r;
  3047.  
  3048.        r.x.dx = port; /* »«ß½Ññ«óáΓѽ∞¡δ⌐ »«pΓ */
  3049.        r.h.ah = 0;    /* Σπ¡¬µ¿∩ ¿¡¿µ¿á½¿ºáµ¿¿ »«pΓá*/
  3050.        r.h.al = 231; /* ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿ - ß¼. óδΦÑ */
  3051.        int86(0x14, &r, &r);
  3052.      }
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  3061. â½áóá VI                                                     -- 52 --
  3062.  
  3063.  
  3064.                              êæÅÄï£çÄéÇìêà ïéæ
  3065.      -----------------------------------------------------------------
  3066.  
  3067.           ä½∩ «íÑß»ÑτÑ¡¿∩ Σπ¡¬µ¿«¡¿p«óá¡¿∩  ïéæ  ¡Ñ«íσ«ñ¿¼«  ºá»πßΓ¿Γ∞
  3068.      Σá⌐½«óδ⌐ ßÑαóÑα ¡á µÑ¡Γpá½∞¡«¼ ¬«¼»∞εΓÑpÑ. èáªñá∩ páí«τá∩ ßΓᡵ¿∩
  3069.      -  áí«¡Ñ¡Γ  ßÑΓ¿  ñ«½ª¡á  ¿¼ÑΓ∞  ó  ß«ßΓáóÑ  ßó«Ñú«   »p«úpἡ«ú«
  3070.      «íÑß»ÑτÑ¡¿∩  Σá⌐½δ GET.EXE ¿ PUT.EXE.  Åp¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ »«½πτ¿Γ∞
  3071.      Σá⌐½,  óó«ñ¿Γß∩ ¬«¼á¡ñá GET,  »p¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ß«σpá¡¿Γ∞ Σá⌐½ ó«
  3072.      ó¡ÑΦ¡Ñ⌐ »á¼∩Γ¿ Σá⌐½«ó«ú« ßÑαóÑαá óó«ñ¿Γß∩ ¬«¼á¡ñá PUT.
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.  
  3080.  
  3081.  
  3082.  
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  3121. â½áóá VI                                                     -- 53 --
  3122.  
  3123.  
  3124.                            æÄéàÉÿàìæÆéÄéÇìêà ïéæ
  3125.      -----------------------------------------------------------------
  3126.  
  3127.           Äñ¡¿¼ ¿º   »Ñpóδσ   πß«óÑpΦÑ¡ßΓó«óá¡¿⌐    «»¿ßá¡¡«⌐    ºñÑß∞
  3128.      »p«ßΓÑ⌐ΦÑ⌐  ïéæ  ∩ó½∩ÑΓß∩  «íÑß»ÑτÑ¡¿Ñ ñ«»«½¡¿Γѽ∞¡«⌐ ó«º¼«ª¡«ßΓ¿
  3129.      ñ½∩ páí«τ¿σ ßΓᡵ¿⌐ ßÑΓ¿ «»Ñp¿p«óáΓ∞ ß ¬áΓὫú«¼ Σá⌐½«ó«⌐ ß¿ßΓѼδ
  3130.      µÑ¡Γpá½∞¡«ú«  ¬«¼»∞εΓÑpá.  ä½∩  φΓ«⌐  µÑ½¿  ¼«ªÑΓ  íδΓ∞ ñ«íáó½Ñ¡á
  3131.      ¬«¼á¡ñá 'd' (directory) ó  ¡áí«p  ¬«¼á¡ñ¡δσ  »p¿¼¿Γ¿ó«ó  ßÑΓ¿.  é
  3132.      »p«ßΓÑ⌐ΦѼ ß½πτáÑ «ípáí«Γ¬á ¬áΓὫúá ßó«ñ¿Γß∩ ¬ Ñú« óδñáτÑ ó ó¿ñÑ
  3133.      »ÑpÑτ¡∩   Σá⌐½«ó   ΓѬπΘÑ⌐   ñ¿pÑ¬Γ«p¿¿.   Å«φΓ«¼π,   ¿ßσ«ñ∩   ¿º
  3134.      óδΦÑ»p¿óÑñÑ¡¡«ú«  »«½«ªÑ¡¿∩,  ñ«íáó½Ñ¡¿Ñ  ¬«¼á¡ñδ  'd'  »«ΓpÑíπÑΓ
  3135.      ß««ΓóÑΓßΓóπεΘÑú«  ñ«»«½¡Ñ¡¿∩  «ß¡«ó¡«ú«  µ¿¬½á  páí«Γδ  Σá⌐½«ó«ú«
  3136.      ßÑαóÑαá   ß   µÑ½∞ε  «íÑß»ÑτÑ¡¿∩  óδñáτ¿  ¬áΓὫúá  »p¿  »ÑpÑñáτÑ
  3137.      áí«¡Ñ¡Γ«¼ φΓ«⌐ ¬«¼á¡ñδ. ÉѺπ½∞ΓáΓ óδ»«½¡Ñ¡¿∩ ¬«¼á¡ñδ «Γ«ípáªáÑΓß∩
  3138.      «íδτ¡δ¼ ß»«ß«í«¼ ¡á φ¬pá¡Ñ Γá¬, íπñΓ« óδ óδ»«½¡¿½¿ ¬«¼á¡ñπ dir ¡á
  3139.      ßó«Ñ¼ ¬«¼»∞εΓÑpÑ.
  3140.  
  3141.           ä«ó«½∞¡« »p¿ó½Ñ¬áΓѽ∞¡« óδú½∩ñ¿Γ páßΦ¿pÑ¡¿Ñ ¡áí«pá ¬«¼á¡ñ¡δσ
  3142.      »p¿¼¿Γ¿ó«ó  ßÑΓ¿ ºá ßτÑΓ ó¡ÑßÑ¡¿∩ ó ¡Ñú« ¬«¼á¡ñδ RUN, »«ºó«½∩εΘÑ⌐
  3143.      áóΓ«¡«¼¡« »ÑpÑßδ½áΓ∞  ¿º  Σá⌐½«ó«ú«  ßÑαóÑαá  óδ»«½¡∩Ѽδ⌐   Σá⌐½,
  3144.      pẼÑΘáΓ∞ Ñú« ó »á¼∩Γ¿ páí«τÑ⌐ ßΓᡵ¿¿ ¿ ºá»π߬áΓ∞.
  3145.  
  3146.           ¥½Ñ¬Γp«¡¡á∩ »«τΓá,  ß  »«¼«Θ∞ε  ¬«Γ«p«⌐  »«½∞º«óáΓѽ¿  ¼«úπΓ
  3147.      «í¼Ñ¡¿óáΓ∞ß∩  ñpπú  ß  ñpπú«¼  ß««íΘÑ¡¿∩¼¿,  ∩ó½∩ÑΓß∩  «ñ¡¿¼   ¿º
  3148.      »Ñpß»Ñ¬Γ¿ó¡δσ ¡á»páó½Ñ¡¿⌐ ß«óÑpΦÑ¡ßΓó«óá¡¿∩ ßÑΓ¿.
  3149.  
  3150.           é ¬«¡Ñτ¡«¼  ¿Γ«úÑ  óδ  ¼«ªÑΓÑ  «íÑß»Ñτ¿Γ∞  ºáΘ¿Γπ óßÑ⌐ óáΦÑ⌐
  3151.      ß¿ßΓÑ¼δ »πΓѼ páºpÑΦÑ¡¿∩ ºáúpπº¬¿ ñ½∩ ¬áªñ«ú« πº½á  ßÑΓ¿ (páí«τÑ⌐
  3152.      ßΓᡵ¿¿) ½¿Φ∞ «»pÑñѽѡ¡δσ Σá⌐½«ó ñ½∩ ºáΘ¿Γδ óßÑ⌐ ß«ó«¬π»¡«ßΓ¿.
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.                                 "C" ñ½∩ »α«ΣÑßß¿«¡á½∞¡δσ »α«úαá¼¼¿ßΓ«ó
  3181.