

                    6.     


                   祬 㦭 ࠩ ன?
                   ⠭ ࠩ஢ ன
                     ࠩ஬  । MS-DOS
                    ࠩ஢ ன
                   ਬ ࠩ 㠫쭮 ᪠
                   祭



            ᭮ ॡ, ।塞   ᫨⥫쭮 -
         ⥬,  砥  ⮫쪮  ᯮᮡ ,    ᯮ-
         ᮡ ⢮  譨 ஬ १ ਩ -
         ன⢠.   ⠪ ᯮᮡ  ⠭   
         祬  ᯮ  "类".    樮 ⥬
         ⮨  ᯥ祭 । ⢨  ਪ ண-
         ࠬ   㦤 ᠬ 樮 ⥬.
             ⮣, ⮡ ਪ ணࠬ  ⢮ 
         譨  ன⢮,  樮  ⥬  㤮⢮
          ᭮ ॡ. -,  ⢮ ।-
           䥩  ਪ ணࠬ  樮 -
         ⥬.   䥩   筮 , ⮡  -
          ணࠬ  筮 । ᢮ ⢨  ࠡ
          ॡ㥬 ன⢮.  -, 樮 ⥬ 易
         㬥 ।  ਭ   ன⢠  ࠢ 
         ࠡ⮩.   䥩  MS-DOS ᯥ稢 ⠪ 뢠묨
         ࠩࠬ ன.
              ६  樮 ⥬      -
         ஢  ࠤ樮   ப ﬨ  প
         ன,  ப 쭮   ⮩ . 筮
           ।⢠ প ᭮ ᪮ ⥫,  -
         ⥬ ନ, 饣 ன⢠ , , --
          ⥫쭮 ன⢠.   ন ᢥ ⮣
         ஢  ᬠਢ   .    
         樮  ⥬,   MS-DOS ᨨ 1.0,  ᯥ稢
         প ⥫ ன ᫥ 㯪  뫮 쭮
         㤭⥫쭮.  樮 ⥬  ᮤঠ 㭪樮
         ᮢ ਪ ஢  ⠭  ன    ᠬ
         ࠩ 뫨 㡮 ⠭  BIOS ( ⥬ --
         ).      ࠩ  ன⢠  ॡ
         ४஢ 室  BIOS (    稨,  ࠧ㬥),
         ୮  ᥬ஢   ஢ 祭   -
         㧮 ஦ ⥬ ᪠.  祭     믮
         㪠 権  뫮  ᮮ⢥ ⨫.  -
         ,  ⠪   IBM PC  﫨   ⮣,  ..  
         BIOS ᠭ   (ﭭ 饬 ன⢥). -
          ᮤন  ॡ    ᯥ樠쭮  ணࠬ
         (ன⢠,  ஥  뢠  ଠ    ணࠬ㥬
         ),        .    ᫥   
         ᨫ  ਪ ணࠬ    ।  饭
          ࠩ஬   .
               室 MS-DOS  ᨨ  2.0. ⭮,  ᠬ
         ⥫   樮 ⥬ ப-
         ஢      CP/M ⠫ ,   MS-DOS ᨨ 2.0
           ᯥ稢  ⮫쪮  ⠭ ࠩ஢ 

                                      - 6-2 -
         - 祭,   ⠭ 塞 䥩, -
           ணࠬ  ⢮  ࠩࠬ. 
         १ ஬ ᫮ ⢮ ன, ন
         MS-DOS       ࠩ  ᥢன,  ᯥ稢騥
         MS-DOS ⥬ ⠪ ।⢠   RAM-᪨,  ᮪஢
         ᪨ 䥩  ..
            ࠩ ன⢠  MS-DOS -  ணࠬ,   -
          MS-DOS,    ஭,      
         ன⢮,   㣮.   ।  ⥬  -
         ன,  ࠩ ன⢠ ।   ணࠬ   -
         ன⢮.

                          祬 㦭 ࠩ ன?

            ࠩ ன   ᭮ . ࢠ -
           ᯥ祭 ⠭⭮ 䥩   ᥬ ணࠬ,
         騬  ᯮ짮 । ன⢮,  ᨬ 
          ᮡ⥩ ன⢠.  ணࠬ, 믮 -
          ⥪,   ஭ ⠡,  ந ᫥,
             ⨯ ନ,  祭    ⥬,
         뤠   ⨯ "⮡ࠧ ᨬ"  " ᨬ-
         ".   孨᪨ ⠫  뫪 ᨬ   ᥡ
         ࠩ,  ᯥ稢 ⥬ ᠬ   ਪ ணࠬ
         ᮪஢ 䥩.   ନ  맢 
         ࠩ,     ⮬  ਪ ணࠬ  ॡ -
           .  ࠩ ᪮   ᯥ稢
         ⠭  䥩     ᯮ㥬 ⨯ ᪮,  
         ⮬ ணࠬ, ⢫ /뢮  ᪠, 㤥 ࠡ
          ᪥⮩  ଠ,   ⪨ ᪮,    ᥢ-
           ,     ࠧ稩.  ᫮, ࢠ -
           ࠩ  ⮨   ᯥ祭 ᨬ  ன⢠
         㭨஢ 䥩.
            ஥ 楫  祭  ࠩ஢  ன 砥 
         ⮬,      ਪ ணࠬ  ᯥ稢  ࢨ,
          ⥪ 㭪権 ६ 믮.   ணࠬ
         ᢮  ⮫쪮  室 প ⢠ ࠧ-
         ଠ  ன,      室 ন 
         - ଠ.     প ன  
          ࠩ ன.   裡  ⥬,   ࠩ ᮡ࠭ 
         樮 ⥬, ॡ     ࠩ.
          १ ⮣ ணࠬ,  ᠭ  ᯮ짮 -
         䥩, ।⠢塞 MS-DOS,   ᮤঠ  ᥡ ࠩ-
         ஢.
             樮 ⥬ MS-DOS ᨨ 2.0   ࠩ 
            ⮣,  ⮡  ஥ ࠩ -
         ⥬. ᫨   ࠢ  ࠡ⠥ ⥬ ࠩ  -
          ன⢮,     ᢮ ᮡ⢥ ࠩ.
          ન ,  ਪ ணࠬ  ⮬ 祣 
         . 筮  ᮧ  ࠩ  -  ᠬ ⮥ ⨥,
         ,  ࠩ , ⠪    .
             ⠪ 魮 ।⢮ ᯥ祭 ࠡ MS-DOS  ࠧ-
         묨 ன⢠,   ।⠢ ᥡ ࠩ,  -
         騥  ॠ  ன!  㣨  ᫮,   
         ࠩ, ন 饥  ன⢮, ਬ
         ࠩ- ᪠  .   ன⢠ 稫 
         "㠫 ன⢠",   ࠩ ⠪ ன,  ᮮ⢥-
         ⢥, "ࠩ  㠫 ன"   "㠫

                                      - 6-3 -
         ࠩ".
              㠫 ன⢠  ࠭祭,   -
         ,  ⮫쪮 ﬨ /뢮.  ࠩ   -
             㭪   ८ࠧ .  ᮪᪮
           믮  ꥬ ᫥   饩
         窮 -    ⮫쪮    ਬ஢ ன⢠ ८ࠧ
         ଠ樨. ஬ ⮣, ࠩ  ணࠬ 㫨஢ -
          ன⢠,     ⭮ ⥬, -
             ᮯ  饩 窮.

                       ᯮ짮 ࠩ ன?

               ᫮  㭪 ᫥ 㤠  ண-
         ࠬ  ७  ࠩ?  ᭮ ࠢ ⮨  ⮬, 
         ᫨  -  㭪  믮  /뢮   䨧᪮
         ஢ (.. ࠡ ।⢥  ன),   㭪-
          - ४   ७  ࠩ.  ᠬ -
          ᥬ⢠ ய஢ 80x86 ⠪ 㭪樨 筮 ᮤঠ
          IN / OUT ( INS  OUTS). ᫨ ⥬ -
          /뢮,  ⮡ࠦ  ,     ᮫
         ᠬ    ⠪   㦨 ஬ /뢮 
         䨧᪮ ஢ (⥭   ஢ 뢠 ⮦ -
          㯮  ᮫ ᠬ, , 筮, ।⥫쭥
         ᯮ짮 㭪樨 MS-DOS "  뢠"  "-
             뢠",  祬  ᯮ짮    楫
         ࠩ).
            뤥 ணࠬ-ࠡ稪  権 /뢮  ࠩ-
          ன⢠ ஦  ᫥⢨ :    ணࠬ
           ६⨬묨,    ࠡ稪  権 /뢮
         㯭묨  㣨 ணࠬ,  ࠡ  ⨬ ன-
         ⢮,  ᪮쪮 㢥稢  ࠧ ⥬   ६
         㯠  .  ஥ 㢥祭 ࠧ , -
           ⥬,     讣 祭,    㢥祭
         ६ 㯠    ᪨  䠪஬    
         ਫ.  ਭ 襭  ᠭ ࠩ, -
         室 ⥫쭮  ᪮ ࠪ⨪ ணࠬ,  
          ஭,    襭 ᮢ⨬ ணࠬ  㯭
         ࠩ,  㣮 ஭. 祭 ६  㯠    
           室   饭  ࠩ  ⭮
          ன,   ।   ࠧ ᫮    -
         .  ࠩ, ।   饭 楫  ,
          室 ⭮ 㬥.

                        MS-DOS - ॥ࠡ쭠 ⥬

             裡  ⥬,   饭  ࠩࠬ ⢫ MS-DOS,
           뢠 ⠪  ࠭祭,    १ 
          ணࠬ.  ,  ਬ, ࠩ   짮
         㭪ﬨ MS-DOS ( ᪫祭  㭪権,  
         ᯮ짮  樠樨 ࠩ).   쥧 ࠭-
         稢 ᢮ ࠩ஢ 㠫 ன, ᮧ  -
         ⥫쭮 ࠡ⪨ ଠ樨,  ।祭  ⠭-
          ࠩ஢.
            , ਬ,  ࠩ 㠫쭮 ਭ, ।祭
          প ᪨ ਬ⨢   ⮬  ਭ  
           ᯮ짮  ⠭ 㭪樨 MS-DOS  뢮 ᨬ-
         .  ࠩ 㠫쭮 ਭ    ᯥ稢  

                                      - 6-4 -
         ணࠬ  প    ⢫  䨧᪮ 뢮 
         ਭ. ⨬,  ࠩ, ᠭ  ⮬ ਬ, -
          㠫, ᬮ  ,   ࠡ⠥  䨧᪨ -
         ன⢮.    ⥬,  ࠩ ।⠢ -
         ,      ন   ॠ  ன⢮,  ⠪  
         믮 ᪨ 権  ⮬ ਭ.
             裡  ⥬,   MS-DOS ॥ࠡ쭠,   ᯮ짮-
          ணࠬ DEBUG  ⫠ ⠭ ࠩ.  -
            ᮡ⢥  権  /뢮  DEBUG  ᯮ
         MS-DOS  ᫨ DEBUG ᯮ짮  ⫠ ࠩ,   ᯮ-
           ।  ࠩ  ଠ,    
         ४⭮ ଠ樨  MS-DOS.     ᯮᮡ  室  ⮣
         ९⢨  砥  ᯮ짮   ஥-
          㭪権 /뢮 (ਬ,  㭪権 BIOS)  뢮 -
         筮 ଠ樨.   ।⥫ ᯮᮡ 砥 
         ᮧ 让 ⮢ ணࠬ  ஢ન ࠡ ࠩ-
         ,  । ࠩ ⮢   ஢ -
         頥 ଠ.   ணࠬ ᪠    ࠢ
         ⫠稪  ࠧ.  筮,  ᫨ ன⢮ 筮 
         ६,  室 ਭ ᮮ⢥騥 , ⮡ 
         - ﭨ  ࠡ ࠩ.

                           ⠭ ࠩ஢ ன

             㯮 ࠭,   ६, ।騥 MS-DOS -
         ᨨ  2.0,  ⠭ ࠩ ன⢠ 砫  BIOS.
         稭  ᨨ 2.0   ⠭   -
          ࠩ   砫쭮 㧪 ⥬.
             砫쭮 㧪 MS-DOS 稭    -
         .    襩 ⥬ ⠭  ﭨ 
          祭 ⠭ .  ࠧ ᫥    
         稭 믮 ,  室騥  ᠬ   -
          ࠭⢠.    80386  , 室騥
           ⭠筮   FFFFFFF0,    80286 
          FFFFF0,    8086   FFFF0.   -
         砥   ⨬ ᠬ 室 ,  ᮤঠ饥 砫 -
         稪,   ண 砥   㧪  ⥬  
         ᪠   .  ᭮ ⬥,    砫쭮
         稪 ﭭ ᫨.   ᮭ   
         IBM  (IBM  PC)   㦠 ⮫쪮  ᪮ "A".   
         ஬ IBM PC XT   㧪    ⪮
         ᪠  , ,   ,    -
         ⥢ 㧪.
            ⥬   ᪠,  㦠   砫 -
         稪,  뢠  稪.  砥 MS-DOS, -
         饩  IBM - ᮢ⨬ ,  ᠬ  ᥪ
         ᪠  512 .   쪨  ࠧ    ⥬
         䠪⮬,   BIOS 室  .  筮 稪,  ⮬
         砥,  㧪 ⠫쭮  ⥬ 筮 -
           BIOS,   ᥣ 室  .  ⥬,  ᮤ-
          BIOS  ,  砫 稪  뢠    ᪠
         ணࠬ, ᯮᮡ ᯥ  筮 稪
          ⠫  ⥬.    ⠪ ⥬ 砫 -
         稪  뢠 쭮   ᪠.
             MS-DOS 㦠 ⮫쪮 ᫥ ⮣,   㤥 ⠭ 
            稪.    ⮩ 稭  -
          ,  ॡ  ᢮ ࠡ MS-DOS,   -

                                      - 6-5 -
         㧪  㣨  樮 ⥬.  ⢥,  ⨯ 㦠
         ⥬   ⮣,    뢠    㧮筮
         ᪠.  㧪 MS-DOS  稪 । -
         稥  ᪥ ୥ ४ ,   ,  ⥬
         䠩.  裡  ⥬,   䠩 ,   ⮡ࠦ
          뢮 ᮤন ୥  ४  (,    
         㢨   ⠪ ⨫,   XTREE, Norton Utilities 
         SDIR).  㭪樨  䠩      ⠢騪,  
           ࠧ.  䠩 ᮤন  MS-DOS  -
          뢠 MSDOS.SYS  IBMDOS.COM    ⥬    IBM.
         㣮  䠩  ᮤন  䥩  MS-DOS  ⥬ -
         -뢮  뢠 IO.SYS (Microsoft),  IBMBIO.COM (IBM)  
          -  㣨 ⠢騪.    䠩 ⠢-
          樮 ⥬ MS-DOS.  ᫥ ⮣,    -
         稪 室  㦠  䠩, 稭  樠-
         樨  MS-DOS.  ⨬,        IBM-ᮢ⨬   ⥬
          稪 뢠 ⮫쪮 䠩 IBMBIO.COM,  , 
         ᢮ ।, 㦠 IBMDOS.COM.
             ⮫쪮  㦥 䥩 䠩 (IO.SYS   -
         ),   稪 । ࠢ 楤 樠-
         樨,  ᮤঠ饩  䥩᭮ 䠩. ஬ ⮩ 楤
         䥩 䠩 ᮤন ⠭  ࠩ,    
         ᯮ짮  樠樨  ࠡ MS-DOS.
             楤 樠樨 砥  ।  -
         ⥩ MS-DOS  , ᮧ  ७ ⠡, ࠡ -
         ⥩  ..,  , , 樠樨  ன, 易-
             ⥬.  樠  ன 砥  뫪
          INIT   ࠩ஢,  ᮤঠ    䥩᭮
         䠩 ( 㤨  INIT ,  ᮢ⭮  㣨 -
           ࠩ஢ ன). ᫥ 樠樨 ன -
         楤  樠樨  稢  ᮧ  ७ ⠡ 
         ⥬  ⮬  ⮢  ࠡ.  ⥫쭮 -
         襭, , ⠥   蠣.
             ⮩ 窥 楤 樠樨 ஢  稥  䠩
         CONFIG.SYS.  ᫨ 㪠 䠩 ,  MS-DOS 㦠
         ⠭    ।   ࠢ. ᫨
          䠩 CONFIG.SYS ,   믮   蠣 樠-
         樨.  ⮬ ⠯  ।⠢   
         MS-DOS  ᮡ⢥ ࠩ ன.

                                   CONFIG.SYS

             CONFIG.SYS    ⥪⮢  䠩,    
          ᯮ  ୥ ४ਨ ᪠,   ண ந-
          㧪 ⥬ (᫨  䠩 室   ୥  -
         ४ਨ,   楤 樠樨 ।,   ᮢᥬ
         ).   CONFIG.SYS ᮤন  ,  㪮
         묨  楤  樠樨  /  ⠭-
          䨣 MS-DOS.  ᫨  䠩 㯥,  楤
         樠樨  (  COMMAND.COM -    㦥) 뢠
             ࠡ뢠 ப  ப.   ப -
         ন   䨣樨.  ࠬ 6-1  -
         ⪠  .         DEVICE,
           ᫥騩 ଠ:

                DEVICE=[d:][path]filename[.ext][ parameters]


                                      - 6-6 -
             (祭   ᪮    -
         ⥫묨):
                d:         - 䨪 ᪮,
                path       -   ࠩ,
                filename   -  䠩, ᮤঠ饣 ࠩ,
                ext        - ७  䠩,
                parameters - ࠬ  ࠩ.

                 室  ⠭  ࠩ.
         ணࠬ ࠩ,  ᮤঠ   ࠩ,  宦 
          .COM ணࠬ,     ᯥ᪨ ᮡ-
         , 뢠 ,   ࠧ, 饭 ᠭ ࠩ-
         ஢.
             饬 砥,  ࠩ ।⠢ ᮡ ᮡ  १-
         ⭮ ணࠬ.    䠩 CONFIG.SYS 砥  
         DEVICE, ᮮ⢥騩 ࠩ 㦠    -
         .  ࠩ ᮤন ଠ  ⨯, , -
          ன⢠  । 窨 室  ணࠬ. ᫥ -
         㧪  ࠩ  MS-DOS  頥    ࠩ   INIT.
         ࠩ 믮 樠  頥  ࠢ  MS-DOS,
         㪠뢠   ࠩ, ..  ࢮ ᢮ -
          , ।⢥ ᫥饣  ࠩ஬.  ⮬ -
          ࠩ 稢.
                 ࠩ    饭  ࠢ
         MS-DOS ᫥ 믮  INIT  㪠 ࠧ -
         ,   ணࠬ,  맮 㭪樨 MS-DOS "
         १⮬".  頥  MS-DOS । ᯮ-
          ᢮ . ᫨ 䠩 CONFIG.SYS ᮤন 㣨 -
           DEVICE,  ᫥騩  ࠩ 㦠 ।⢥ ᫥
         ।饣.  ᫥ ⮣,  ࠡ⪠ 䠩 CONFIG.SYS -
         ,  㦠   ࠩ - ࠩ 䨪⨢ ன⢠
         (NUL-ࠩ).  ⥬ MS-DOS  蠥  樠  㧪
         ﭭ  COMMAND.COM  㣮, ।塞 짮-
          窨.
             㧪 ࠩ஢ MS-DOS 뢠   楯, ⠪ -
           ࠩ ᮤঠ 뫪  ࠭  㦥  ࠩ.
         窠 ࠩ஢ 稭,  ⠪ ࠧ,  ᫥ -
          ࠩ (NUL-ࠩ)  稢 ᠬ   -
         㦥  ࠩ஬ (筮 ⠭ ࠩ ன⢠ COM2).
          楯窠 ந, ᯮ   ᫮  -
          ࠩ.    ᫮ ᮤঠ ᥣ  ᬥ饭 ᫥-
         饣  楯窥 ࠩ ,  砥 ᫥ ࠩ ᫮ -
         1 (⭠筮 祭 FFFF). ਬ 楯窨 ࠩ஢ -
           ⨭ 6-6, ਢ   ⮩ .
             MS-DOS  ॡ     । ࠩ,
          稭   楯窥 ࠩ஢ (稭   NUL-ࠩ)
          浪, ⭮ ⮬,  ஬ ࠩ 뫨 㦥. -
          ⮣,  ॡ㥬 ࠩ , MS-DOS 頥   
         ᮮ⢥饩 . ᫥⥫쭮 ᪠  楯窥 
         ⮬ ⠪,   ᫨ 㦥 짮⥫᪨ ࠩ,  -
         ண  ᮢ   - ⠭⭮ ࠩ (-
           CON,  AUX  PRN),  ࠩ 짮⥫  㤥  
         .    짮⥫  ⠭ ࠩ
         (ਬ,  ⠭ CON-ࠩ  ANSI.SYS CON-ࠩ-
         ).
            ⠭ ࠩ  ⢨⥫쭮 㦠   樠-
            ⮣  䠩 CONFIG.SYS 㤥 ⠭  ࠡ⠭.

                                      - 6-7 -
           Ŀ   Ŀ
            1     2 
              
             
                 
               Ŀ
                3 
               
                / \   
              <  4  >><Ŀ
                \ /                                                  
                         / \                                    
                          <  5  >Ŀ        
                            \ /                                     
                 <ٍ                         Ŀ      
                                                           7       
               Ŀ                                             
                6                                       / \       
                                             <  8  >     
                                                          \ /       
                                               Ŀ             
                / \                            9                 
              <  12 >Ŀ                       Ŀ      
                \ /                                       10      
                        Ŀ               Ŀ            
                            13                11                
               Ŀ                                       
                14                             
                         
                             
                 <
                 
                 
               Ŀ
                15
               

                   -奬 6-1.  樠樨 MS-DOS.

            1 -  㧪 ( ⨨  Ctrl+Alt+Del)
            2 -  㧪 ( ""  祭 ⠭)
            3 - 㧪 ⥬
            4 -  CONFIG.SYS  ?
            5 -   ப  CONFIG.SYS ?
            6 - 㧪   ॡ㥬   (
                㬮砭  COMMAND.COM)
            7 - ⥭ ப  䠩 CONFIG.SYS
            8 -   "DEVICE=" ?
            9 - 㧪 㪠   "DEVICE=" 䠩  祭
                  楯窥 ࠩ஢
           10 - ࠡ⪠ -   "BREAK=","BUFFERS=","FILES="
                 "SHELL="
           11 - 饭  ࠩ   "INIT="
           12 -  AUTOEXEC.BAT  ?
           13 - 믮  㦥  AUTOEXEC.BAT 
           14 - 믮 ணࠬ DATE  TIME
           15 - 뤠 ⥬ ਣ襭 "A:>"

                                      - 6-8 -
           楤 樠樨 ࠩ ᯮ짮 -
           㭪樨 MS-DOS  뢮 ᮮ饭  ன ࠩ
            樮 ⥬.   类 ᪨ -
           ᯮ짮 㭪樨 MS-DOS  01H  0CH,   -
         稢  ࠡ    ன⢠ CON, PRN  AUX,  ⠪ 㭪
         30H ("  MS-DOS").  맮,  ⭮  ࠡ 
         䠩  ࠢ ,  ᫥ , ⠪   -
         ।     襭.
            ᫥ ⮣,  䠩 CONFIG.SYS ࠡ⠭  ࠩ ந-
         ஢, ⠭ ࠩ ன CON, PRN  AUX -
            뢠 樮 ⥬  ⮣, ⮡
           ந    (᫨  ⠪ ।ᬮ७) 㪠
         ࠩ஢.  稭  ⮣    ᯮ  ⮫쪮  
         ࠩ.
            । ࠩ        짮⥫.
            -  ࠩ ⮣  (䨪⨢)  ன⢠  NUL.
            ⥬ 䠪⮬,   MS-DOS ᯮ NUL-ࠩ 
         ⢥ 砫 楯窨 ࠩ஢.   ஥ NUL-ࠩ
         ᥣ । 砫 楯窨 ࠩ஢,    ᥣ -
           ஥ NUL-ࠩ.  奬᪨ ਬ  楯窨
         ࠩ஢   㭪 6-1.  ஡ 祭  
         㪠  㤥 ᭥ .  ࠩ,  祭  
         ᫥,   ⢨⥫쭮   ⠭ ࠩ-
         ஬,   ࠩ, 室騩 ࠧ ᫥ NUL-ࠩ ( 楯窥)
         ⠭ ᠬ ᫥.
             ķ         ķ         ķ
              ⥫            ⥫              થ   
                 >          > ᫥ 
               ࠩ             ᫥騩             ࠩ  
                                    ࠩ               ( -1 )   
             Ķ         Ķ         Ķ
               ਡ             ਡ             ਡ  
             Ķ         Ķ         Ķ
              ⥫            ⥫            ⥫  
       Ĵ             Ĵ             Ĵ          
                                     
            Ķ        Ķ        Ķ
             ⥫           ⥫           ⥫  
         Ĵ               Ĵ               Ĵ          
                               
           Ķ       Ķ       Ķ
            ன⢮                           
               NUL               ᫮              ᫮    
                               ன          ன  
       >Ķ   >Ķ   >Ķ
             ணࠬ           ணࠬ           ணࠬ  
                                     
             \/\/\/\/\/\/          \/\/\/\/\/\/          \/\/\/\/\/\/
            /\/\/\/\/\/\/\        /\/\/\/\/\/\/\        /\/\/\/\/\/\/\
          >Ķ      >Ķ      >Ķ
              ணࠬ            ணࠬ            ணࠬ  
                                     
              \/\/\/\/\/\/           \/\/\/\/\/\/           \/\/\/\/\/\/
             /\/\/\/\/\/\/\         /\/\/\/\/\/\/\         /\/\/\/\/\/\/\
             ͼ         ͼ         ͼ
                     㭮 6-1. 窠 ࠩ஢ ன.
             ⮫쪮 NUL-ࠩ    . ࠩ, ࠡ-

                                      - 6-9 -
         騥  ன⢠ ᮢ  (ਬ   ᪠),  ⠪
               .     ࠩ  
         ᪮,    㤠   㦥 騥.  ࠭-
         祭   ⮩ 稭,   ࠩࠬ ᪮ -
         ன (A,B,C  ..) 砥 MS-DOS   㧪.  
         ᢮  ⭮  ᪮ 㭨쭮 ,  ᮮ⢥⢥
            .

                      ᯮ짮  ASSIGN  
                           ࠩ஢ ᪮ ன

                ࠨ, ᫨   㤮⢮ -
           ᪮ ࠩ஢.    㤠, 
           "ࠫ". ᫥ ⮣,   ᠫ ( ஢-
         ਫ)  ࠩ,   䠩 CONFIG.SYS. ᫥  १-
         㧪 ⥬  㤥 祭  楯 ࠩ஢ ன. -
         ਬ, ᫨    ᪮,   ࠩ    
         "D".    ᯮ   ASSIGN  ७祭 
         饭  ஬ ࠩ  . ⨬,  ⨬ 
         ࠩ ᪮ "A".  ASSIGN,  ⮬, 㤥  

                ASSIGN A = D

            MS-DOS ७    饭   ࠩ "A"  ࠩ
         "D",   ᮫     뢠 25H  26H.
         ᫨    ᠫ    ࠩ  ࠡ  ⥬  䨧᪨
         ᪮,   ࠡ⠫  ࠩ,  ᠭ -
         ன   쭮 䥪⨢    .  ᫨  
         ,   ࠩ -⠪ ,   ⠭-
          ࢮ砫 䨣,    ASSIGN  -
         ஢.
        Ŀ
             :   ᯮ짮  ASSIGN    
                                                                         
                ASSIGN       騥 
         ࠩ  ᪮    ,     ᥣ ࠧ㬭.  
         ,  ⠪    BACKUP    PRINT,  ணࠬ,  
         Lotus 1-2-3  쬠 㤨, ᫨   ࠡ   
         ८।묨 ᪠.  㣨 ,  ⠪   FORMAT, 
         DISKCOPY  DISKCOMP,   ⠪ ᪨  ࠡ 
          騬 ᪨ ᪠.                               
        

                              ࠩ஢ ன

              ⨯ ࠩ஢ ன,    -
         ,  뢠 ᮮ⢥⢥ ࠩࠬ  ᨬ  -
         ன   ࠩࠬ  ன.  稥   -
         ࠧ 㡦,  祬 ᯮᮡ    塞.  ஬
         ⮣,    ࠩ ।祭  প ᪮
         ன, ।,   ࠩ  -
               ᪮.   /뢮  ⠪
         ࠩ஢ ᯥ稢  㯠   ⤥  ᥪࠬ
         ,  ᫨      ਡ NONIBM (⠪   NONFAT),
         ।,   ࠩ  ন ⠭  
         MS-DOS  ᪠,  FAT (⠡ । ᪠)

                                      - 6-10 -
          ४ਨ.
            ஢ ,   "ᨬ"  ""  ᮢ-
         ᥬ ,  ⠪  ᨬ ࠩ  ⮦    ন
          ० । .   ⮣,   ᪠, 
         ᨬ ࠩ ᯥ稢 ᫥⥫ ,  -
          ࠩ ᯥ稢 אַ ,  ⠪   ஥-
         ஢ ᨬ ࠩ ⠪, ⮡  ন אַ 
          ன (᫨, 筮,   ࠡ  ⠪ ०.
            ⠢    ⮬,    ⠪ ᨬ ࠩ  
           ⠪   ࠩ,  㤨  ᯮᮡ ࠡ 
         ࠩࠬ ன १ MS-DOS.     ᮮ-
           ⮬,   ⨯ ᫥ , ᫨   
         ࠩ  - ਫ.

                     ࠩࠬ ன  । MS-DOS

             ਪ  ணࠬ  MS-DOS  ᯥ稢  ᭮
         ⮤ 㯠  譨 ன⢠.      㤮  
         ᮮ⢥  ਫ   㤨 ⮨⢠  ⪨
          ⮤  ⮣,  ⮡    ⮤,  
         㤮  襣 ਫ.    㤥 뢠 ⠫ -
           㭪樮 맮, ⠪   ଠ  -
           "MS-DOS Programmer's Reference Manual" ("MS-DOS. 㪮⢮
         ணࠬ.")  Microsoft  㣮 筮  㪮-
         ⢥. 騩  ᯨ᮪    ⮤.

         * CP/M-ਥ஢  㭪樨  ࠡ  ⠪ ன⢠,
            ᮫, ਭ  ᯮ⥫쭮 ன⢮.  ⨭-
            ᨬ ன⢠. 㭪樨, 室騥   㯯 :

                CON: 㭪樨 01H, 02H,   06H  0CH
                PRN: 㭪 05H
                AUX: 㭪樨 03H  04H

         * CP/M-ਥ஢ 㭪樨  ࠡ  䠩  ᯮ짮-
            FCB ( ࠢ 䠩).    ⮤  ⠪  
             ᯮ짮   㯠  ᨬ ன⢠.   
           㯯 室 㭪樨 :

             /:                 㭪樨 0FH  10H
             / ன⢮/:   㭪樨 14H  15H
             / :              㭪樨 21H, 22H, 27H  28H

         * 㭪樨 MS-DOS-⨫   ࠡ    䠩    ᯮ짮
           ⥫.  ⮤ (筮 FCB-⮤) ⮦  -
           짮  ࠡ  ᨬ묨 ன⢠.  㭪樨, -
           騥  ᯮ짮 ⥫ 䠩 :

                /:                 㭪樨 3DH  3EH
                / ன⢮/:   㭪樨 3FH  40H
                ࠢ ன⢮:          㭪 44H
         * 㭪樨 אַ 㯠  , 믮騥 ⥭   
           ᮫ ᠬ.   㭪樨 ᯥ稢 ⤥묨 -
           뢠ﬨ INT 25H (᮫⭮ ⥭)  INT 26H (᮫⭠ -
           ).


                                      - 6-11 -
             㭪樨 CP/M-⨫  ࠡ  ᨬ묨 ன⢠

            CP/M-ਥ஢ 㭪樨 ।祭,    ᭮,  
         ࠡ  ⠭ ன⢮ CON  ।  
         ਧ樨, -⮡ࠦ,  ᨬ  ஢ન -
         .  প ன PRN  AUX  ࠭祭,   
         筠   ਫ.  ⠭ ன, -
         ,  室 ᯮ짮  ⮤, ᯮ騩 FCB (
         ࠢ 䠩),  ⮤  ᭮ ⥫ 䠩.

            ன⢮  ᯮ짮  ࠢ 䠩

            FCB-⮤ ࠡ  ன⢠   ⮨⢠    -
         ⪨.   ஭, FCB ᫮ ᮧ  ᯮ짮, 祬
         ࠡ   ⥫ﬨ 䠩,   ᯮ짮 । 
         ४⨢ STRUC  쬠   ஥   -
         ࠢ  䠩.   㣮 ஭,  FCB-⮤  ணࠬ-
          ।⢥ 㪠뢠    䠩,    -
           אַ      䠩.  㭪樨  3FH  ("")  40H
         (""), ࠡ騥  ⥫ﬨ,  ⢫ ⮫-
          ᫥⥫   䠩.  믮 אַ -
           䠩,  ᯮ 㭪樨 ⥫ ,  ਪ ணࠬ
              㭪樨 42H ("। 㪠⥫ 䠩").
         FCB-⮤ ࠡ ⠪ ⥫ ⢨  ॡ.

                   ன⢠  ᭮ ⥫ 䠩

             אַ  祭 㦥  ࠡ    䠩,    
          讣 祭  ࠡ     ᪮묨  ன⢠.
           ࠡ    ⠪  ன⢠  ⮤ 㯠,  ᯮ騩
         ⥫,     ᯮ짮   ॡ  ணࠬ-
           ᮧ FCB.  ஬ ⮣,  ⥫-ਥ஢ ⮤
         㯠  ()  ন  IOCTL  (ࠢ  /뢮)
         㭪 44H.   ᪮ 㢨, IOCTL-㭪   ᪫-
         ⥫쭮   ࠢ ன⢮.
             ᯮ짮      (⥫-ਥ஢   ⮤
         㯠)  ࠡ   ᪮묨  ன⢠,  ணࠬ  
         ࠭祭 뫪     ࠧ.   饭 
         㭪 /뢮   ᫠    ன⢠    
         ன⢮  64 K.     ࠡ  ᪠, ᯮ짮
          㭪権     ᪮  ன  ਢ    믮
         ᫥⥫쭮 । . ᯮ, , IOCTL-㭪
         אַ ࠢ,    ன ⥫  -
         .  , ਬ, ᫨  ன⢮   ࠩ ⠭
          ० אַ 㯠,   ᯮ짮 IOCTL-㭪  -
         ࠢ  窠  ࠢ  祭  뫪  
         ன⢥.
             ਬ     樨  ⥭樠  אַ
         ࠢ /뢮  ன⢮. ।,  -
          ⥬  ⮡ࠦ  ᭮ ࠭⢮ -
          ⥬.    ⥬    -
           ᯮ짮 ࠩ ᪮  .    ⮩
         稭,       ன⢮ ᮢ -
         , ࠩ     ᨬ. ᫨ /뢮 -
           ᯮ짮 ⮫쪮 ,    ᯮᮡ -
         ।   -,  㤠   ᫠  .

                                      - 6-12 -
         ᫨   ࠩ ন IOCTL-㭪,    ᪮
           । १  ࠢ.

           㭪 44H - ࠢ /뢮  ன (IOCTL)

                㯮,       ன⢠  ন  맮
         IOCTL-㭪樨.   ࠩ,  ᯥ稢 ࠢ -
         /뢮,      易⥫쭮   ন     
         IOCTL-㭪樨.    ,  IOCTL    ⮫쪮  
         ।⢮  ࠢ  ࠡ⮩  ன,    㦤 
         ணࠬ⮢      ﬨ.  
         ⮣,     ᤥ   IOCTL,  ᮬ ।
         襭 ணࠬ  ⮬,   㭪樮묨 ᮡﬨ
          ࠩ ன⢠.
            㭪 ࠢ /뢮    ᭮  ०,
          । ।  ॣ AL  㭪樨 :

              - 䨣 ன⢠ ( 0, 1   ᫥ 
                MS-DOS,  8, 0BH, 0EH  0FH);
              - ࠢ  /뢮 (  2  5   MS-DOS
                ᨨ 3.2,  0CH  0DH);
              -   ன⢠ ( 6  7).

         ᮪  㭪権, ন IOCTL,   ⠡ 6-1.
              ன⢠ 頥   ⮢
         (0FFH)   ⮢ (0).  㪮⢥  ணࠬ  ଠ
         Microsoft ।०  ⮬,       -
         ४   饭  ࠢ  뢠饩  ணࠬ.
         ⭮,  㪮⢥       -
         ⨧筮 MS-DOS.   ⮫쪮 ,    
         騥 ᨨ, Microsoft  ᯮᮡ  ४ -
         ଠ.     뫮,     MS-DOS  ⠫ -
         筮, ஡ 筮    ⢮.
             㦥 㯮      ࠢ  ன⢮
         IOCTL.   ,   ।⢮ 뫪   
         ᯮ⥫쭮 .  堭 ⮣ 맮 祭  맮
         㭪権 /뢮  ᭮  (㭪樨 3FH  40H),   -
         祭   㭪権,  ।塞  ᮤন  ॣ  AX.
         ।祭  ,  ।  ⥫쭮 ,
          ன⢠   ᠬ ࠩ -   ࠧࠡ稪.
             , , ᫥ ⮩ ⮩ 㭪樨   -
         ਭ   ᥣ-   㭪 /뢮.   -
         ⢥饬  ਫ,  IOCTL   㯠  ஫
         筮   ⢨  ࠩ஬. ଠ Microsoft
         ᯥ稫  "  "  襭 । ஡.
           - " ,    䥩  ࠩࠬ ᫨-
          ࠭祭 ?     ?  , ஡ 
         ."  室  ஬ 蠣 ।   ࠢ 
         室 "   ⮣,     㦭 !",  
         ⠪   쬠 ࠭  ।  ࠧࠡ稪 ⥬.


                                      - 6-13 -
                                                          6-1
                     㭪樨 ࠢ /뢮 (IOCTL)
         
              ਬ砭           祭
          (AL=) MS-DOS           
         
           0:    2.0+   #1,#2     ଠ ன⢠
           1:    2.0+            ⠭ ଠ ன⢠
           2:    2.0+   #3,#6      ࠢ饣  
           3:    2.0+   #3,#6      ࠢ騩  
           4:    2.0+   #3,#7      ࠢ饣  
           5:    2.0+   #3,#7      ࠢ騩  
           6:    2.0+   #1        室 ଠ
           7:    2.0+   #1        室 ଠ
           8:    3.0+   #2        ন ᬥ ⥫ ?
           9:    3.2+             쭮  㤠 ?
           A:    3.2+            ⥫   㤠 ?
           B:    3.0+   #4        稪 ⮪
           C:    3.3+   #5         ४祭  ࠭
           D:    3.3+   #5        IOCTL   ன
           E:    3.3+   #5         ᪮ ᪠
           F:    3.3+   #5       ⠭  ᪮ ᪠
         
         ਬ砭 #1: 㭪 ন  䠩, ⠪  ன⢠.
         ਬ砭 #2: 㭪  ন ⥢ ࠡ.
         ਬ砭 #3: 㭪 ࠧ蠥  ⮬  14  ᫮  ਡ⮢
                        ࠩ    প । ⮬ 14 ᫮
                        䨣樨.
         ਬ砭 #4: 㭪 ॡ 㧪  SHARE.
         ਬ砭 #5: 㭪 ࠧ襭 ⮬ 6 ᫮ ਡ⮢ ࠩ.
         ਬ砭 #6:  - ᨬ쭮 ன⢮.
         ਬ砭 #7:  -  ன⢮.

              䨣    ࠢ /뢮

            MS-DOS ᯥ稢  믮  䨣樨 ("
            ⠭    ଠ    ன⢠"),    ন
         IOCTL-㭪樥.  㭪 6-2  16-⮢ ᫮ 䨣-
         樨, ᯮ㥬 㭪ﬨ "/⠭ ଠ -
         ன⢠" ( 0  1).  ⥪  MS-DOS   -
          ⮫쪮 訥 8  ⮣ ᫮.   ᠭ 祭
          ⮢ ᫮ 䨣樨,    祭  ࠩ-
         ஢ ன    ᯮᮡ ࠡ⪨ ࠩ஬ .

                                IOCTL  14: CTRL

             CTRL ⠭  1 ᫨ ࠩ    ࠡ뢠
         ࠢ騥 ᫥⥫쭮.   筮 ࠦ ﭨ
         IOCTL   ᫮ ਡ⮢ ࠩ ன⢠.  IOCTL-  -
          ࠩ஬  饭 MS-DOS  ⮬,  ࠩ -
          ਭ ࠢ騥 ᫥⥫쭮.     ਬ
           䠩, ⠪   ன⢠.



                                      - 6-14 -
          15  14  13  12  11  10  9   8   7   6   5   4   3   2   1   0
        ͻ
         R  C                    I  E  B  S  I  I  I  I 
         E  T                    S  O  I  P  S  S  S  S 
         S  R     R E S E R V E D     D  F  N  E  C  N  C  C 
            L                    E        C  L  U  O  I 
                                 V        L  K  L  T  N 
        ͼ
                               
         CTRL =1 : প ࠢ饣   EOF  =0 :  䠩  室
                                      BIN  =1 :   筮
         ISDEV=1 :  -  ன⢮             ०
              =0 :  -  䠩         SPECL=1 : 樠쭮 ன-
                                                      ⢮
                                            ISCLK=1 : ன⢮ ""
                                        ISNUL=1 : ன⢮ NUL
         ᫥      0    ISCOT=1 : ᮫ 뢮
         5 -    -    ISCIN=1 : ᮫ 

                    㭮 6-2.  䨣樨 ன⢠.

                                IOCTL  7: ISDEV

             ISDEV ࠢ 1 ᫨  ( ⥫)      -
         ன. ᫨    䠩,    뢠  0.

                                 IOCTL  5: BIN

              䨣樨 (BIN) । ⮢  -
         ⮢ ० ࠡ ࠩ.  㣨 ᫮,   
         ।    室 ⥫ ࠡ 
         ।  MS-DOS 㤥  । ""   -
         ଠ  ன⢮  ਪ ணࠬ.   -
         ⥫쭮 ࠡ⪮ ࠧ㬥 ࠡ⪠ ।  ࠢ-
           ᨬ,  ७  ᨬ  ⠡樨,  ஢ઠ  
         ⨥  CTRL-BREAK  ..
             ࠤ樮묨    㭪権  ନ "-
          ०"  "ASCII ०",  ᮮ⢥騥 ⮢  
         ⮢  ०.    㪮⢥ ணࠬ  MS-DOS
         ਢ  ⠫ 樨  ⮬,   ஢  -
         ⠭  . ,  ᢮ ।, 㤨 ﭨ ⮣ -
           ࠡ ᨬ ࠩ஢.  (,  ,  
          .6-2,    ᯮ   ࠩ஢).
            ᫨ ᨬ ࠩ 室  ⮢  ० (
         㬮砭),  । ⭮. 㣨 ᫮,  -
         饭  ࠩ ਢ  ।  ᨬ.  ந-
         室  ᨬ  ⮣,   ⢮  ॡ
         ਪ ணࠬ   饭    MS-DOS.  ਬ,  ᫨
         ਪ ணࠬ ॡ 뢥 128   ᨬ쭮 -
         ன⢮,   ࠩ ࠡ⠥  ⮢ ०,   MS-DOS
         ᤥ  128 饭  ࠩ  㭪樥 ""  " 
         ", ।   맮  .
            ᨬ쭮 /뢮  ,  ॢ ࠩ 
         ⮢ ०.  ᫥   ⠭ ⮫쪮 
          IOCTL 㭪樨.  ⮢ ० ⢮ -
          ,  ਪ ணࠬ, ᯮ ⠪
          饭  ࠩ.   ⥬  ᠬ ਬ஬,  ᫨
         ਪ ணࠬ ॡ 뢮 128    ᨬ쭮  -

                                      - 6-15 -
         ன⢮,   ࠩ ࠡ⠥  ⮢ ०,  MS-DOS
         ᤥ ⢥ 饭  ࠩ  㭪樥  "" 
         "  ",   ⢮ ।  ࠢ
         128.
                                IOCTL  4: SPECL
              CTRL,   SPECL  ᫮ 䨣樨 筮 -
           ﭨ  SPECL  ᫮ ਡ⮢.   ⠭-
         ,    砥,   ࠩ (  ᥣ
           ࠩ஬  ᮫) ᯮᮡ 믮 ᮪᪮⭮
         뢮  筮 ०, ᯮ 뢠 INT 29H.
             BIN,  ।騩  ⮢ ०,  ⠪ ॡ
         ࠧ襭 ᮪᪮⭮ ० 뢮, ।塞 ਡ-
         ⮬ SPECL. ᫨ ⠭   ᫮ 䨣樨 BIN, ⠪ 
          ᫮ ਡ⮢ SPECL,  ࠩ 㤥 ࠡ  ०
         ᮪᪮⭮ 뢮.  ०   ਡ⮢ SPECL -
           㡮  ࠧ " ਡ⮢  ࠩ-
         ".

                      㯯  ࠢ /뢮

             IOCTL , 訥  MS-DOS ᨨ 3.3 - -
          C,  D, E  F -  易⥫묨  ࠧ襭 ⮫쪮 
         ⠭  6 ᫮ ਡ⮢ ࠩ. 㯯 㭪権,
         ᯥ稢  C  D, ।⠢ ᮡ 쭮 "ࠧ-
         ⭮"  ᮡ࠭  쬠 ᯥ᪨ 㭪権.   㯯,
          ࠢ,  ᯮ  প  ।,  
         ⮢⥫  ன⢠ 㭪樮 ᮡ⥩,  ⠪ 
         ४祭 䮭⮢  ਭ,  ଠ஢ ᪠  .. ᫨
          ,     室 ᯮ짮  -
         ,  ᫥   㪮 ணࠬ,  ।⠢-
           ஡ ଠ.
             E  F    ਪ  ணࠬ  ࠢ
         祭  ᢮ ᪨ ᪮,  ਬ ⠪, 
            SUBST.  E ("  ᪮
         ᪠") 頥 祭, ᯮ짮  ᫥ -
         饭  ॠ쭮 ன,    F ("⠭  -
         ᪮ ᪠") ᯮ   祭  -
         ᪨ ᪮.

             אַ    १ 뢠 INT 25H  INT 25H

             㣮  ஭  ᯥ    㯠  ன  
         ⥫ 䠩 ()  뢠 אַ 㯠  
         :  "⥭  ᮫⭮ " (INT 25H)  "  ᮫-
          " (INT 26H).  ᭮  ,  뢠  אַ
         㯠    ࠡ ᪫⥫쭮  묨 ன⢠,
         ਬ  ᪠.    뢠 砥  ᯥ-
         祭 ࠡ  ᪠ ,   ᯮ 䠩 
         MS-DOS.       .
             ࢮ 砥,  ணࠬ  뢠   뢠
         ⤥    ⠭⭮ ᪠ MS-DOS,  ᮤঠ騥 䠩 
          ४.   ॡ,   ᪠ -
          宩  ,  ⮬, ᯮ짮 FCB-⮤ 
         .   ⮬ 砥  ᯮ짮 㭪樨 אַ 㯠 
             ⮣,  ⮡ ஡ ⠭ ,   
          ⠭. ஬ ⮣, ணࠬ  뢠  -
         뢠  ⠡ । (FAT)  ४ਨ ᪠,  -
         㯭  㣨  ⮤.   ᯮᮡ  ॡ  ⨫⠬,

                                      - 6-16 -
         騬 ४ਨ, 騬 ਡ 䠩  ..
             ஬ 砥,  ᯮ짮  㭪権    ॡ-
           砥, ᫨    ᮤন ⠡ ।-
          䠩  ४ਥ.         ᯮ짮
         ⮫쪮    .       
         ⥭ ᪮,  ᠭ  㣮 樮 ।, ⠪ 
         CP/M    UCSD-p ⥬.      ࠬ ᪠,
         頥 ⥬ ࠩ஬,     
          㣨 ⮤.   ⪠ 믮 䠩 権
         /뢮,   ⥭ ४,    -
         饭  訡 ("Non-DOS Disk"). ᫨    -
         ஡ ଠ  ⮬,    MS-DOS  ।  ଠ  ᪠,
         ᬮ  ᠭ  ࠩ "ந  ࠬ஢
         BIOS"  㪮⢥ ணࠬ  , 筮 㬥.
              ᯥ祭 אַ 㯠  , ᫥ -
         ,  INT 25H  INT26H  믮 ஢  -
         ஢  .  ஢  ஢ ॡ,  
         ࠧ 䨧᪮ ᥪ  ᪥ ⫨砥   ࠧ  -
         ᪮  ,  ᯮ㥬 ⥬.   ஢ 
         ⥬ ᮡࠥ  筮 ⢮ ᥩ  -
          䨧᪮ ᥪ । ࠭   ᪥.  -
         ஢ ᯮ  ⥭  ᪠,  ..   䨧᪨
         ᥪ  ᮤঠ ᪮쪮 ᥩ.  ᫥ 砥 -
         ⥬ 뢠 楫 ᥪ ,  ⥬,  롨ࠥ 㤠 ॡ㥬
         ணࠬ  .  㭪樨 㯠    ᮫ ᠬ
         뢠  뢠 ⮫쪮 楫 ᥪ,  ⠪  ணࠬ
         易  ࠧ ᥪ ᪠  ⮣,  ⮡ । -
         ⢮ ⠭  ᠭ ⮢.
             裡  ⥬,  ࠬ, ᯮ㥬 ⨬ 뢠ﬨ,
         । ࠩ  - ८ࠧ, 樨 -
            ।   ࠧ஬,   ᥪ-
          ᪠.   ⫨砥  ⮤ 㯠    FCB-⮤  
         ⥫-ਥ஢ ⮤ 㯠,   /뢮  -
           ନ ᪨   ᥩ,    MS-DOS  -
         ⢫  ८ࠧ ᪨   䨧᪨ ᥪ.
            ᫥ ᮡ 㭪権 אַ 㯠   -
           ⮬,      뢠 INT 25H  INT 26H
            RETF,    IRET,  ⠢  ⮬ 䫠  
         ⥪.  ⮬,  ᫥ ஢ન ४⭮ 믮 㭪樨,
            䫠  ⥪.

                           "/뢮  ஢મ"

             믮  権  /뢮  ᫥ 뢠 
         ᮡ,  饥  ࠡ ࠩ ன⢠.  ᮡ-
           뢠  ᯮ짮 樨 "/뢮  ஢મ",
           ன  ⠢ ࠩ  ஢  믮
          뢮, .. ⢫ 뢠 ᫥ .  -
           ⠭  ⬥ ६ ᯮᮡ :

                1.  ப MS-DOS 짮⥫    믮
                 "VERIFY ON"  "VERIFY OFF"  ⮣, ⮡ ᮮ-
                ⢥   몫  .

                2.   MS-DOS,  ⠪  COPY,   -
                  /V,  砥  ஢ન  ६ -
                 .

                                      - 6-17 -
                3. ஢ન    祭    몫祭  
                ணࠬ,  ᯮ  㭪  MS-DOS  2H (" 
                몫  ஢ન").

                                      뢮

             ⮬ ࠧ  㤨 ᭮ ⨯ 権,  -
          ॡ  ࠩ;    諨    ᠬ,
         易  ࠧࠡ⪮ ࠩ஢.
              ᪠,   ⬥ ᫥饥. 믮-
           ᭮  権  /뢮  ᥣ  ந १
         ࠩ ன.  ࠩ  ⠪  ন  -
         ⥫  /뢮  ࠢ ன⢮. 
         ࠩ  ।  1  64 K     饭  
         ࠩ.    ࠩ    ।  ⮫쪮 
         ᥪࠬ,  .. ८ࠧ ᥪ஢    ⭮ 믮-
           MS-DOS.     㯮,   ࠩ 
          ଠ  ᯮ㥬   騩  -
         .

                            ࠩ஢ ன

             ࠩ஢   樮  ⥬    
         २ । ᠭ  ணࠬ. ࠩ ன
          ᫥ ண । ,   ᫨ 
         ⭠,  ⠫쭮 ਫ.
               ࠩ  ன⢠     .6-3.
         易⥫쭮  ⢮  ࠧ ࠩ -- -
          ,      .  ண-
         ࠬ    ⮦ ᠬ,   ணࠬ ࠡ⪨ -
         뢠,     ⢮  ⢥ 易⥫쭮
          ࠡ饣  뢠 ࠩ.   ᠬ ,  ண-
         ࠬ  -  窠 室  ࠩ  ࠡ⪨  -
         砥  MS-DOS .


                               ķ
                                   ࠩ    
                               Ķ
                                  ࠩ 
                               Ķ
                                  ணࠬ    
                               Ķ
                                        室           
                                  ணࠬ   
                               Ķ
                                   ࠡ稪     
                               Ķ
                                  ணࠬ ࠡ⪨   
                                      뢠        
                               Ķ
                                楤 樠樨 
                               ͼ

                     㭮 6-3.  ࠩ  MS-DOS

                                      - 6-18 -
             ணࠬ  6-1 ।⠢ ᪥ ࠩ ன⢠.  
          ࠩ 宦   .COM ணࠬ,   -
          ᫥騥 ⫨ :

          1. ணࠬ 稭  㫥 ᬥ饭,   100H.

          2. ࠧ ணࠬ 稭  ४⨢ ।  
               ࠩ.

          3. ணࠬ    ᮤন  ४⨢  ASSUME   ⥪
             ᥣ.

          4. ணࠬ  ᮤন ४⨢ END START.


         ⨭ 6-1.  ࠩ, ணࠬ   
        ------------------------------------------------------------------

    DRIVER    SEGMENT PARA
              ASSUME  CS:DRIVER,DS:NOTHING,ES:NOTHING
              ORG     0
    START     EQU     $                       ; 砫 ࠩ
    ;
    ;*******   *******************************************
    ;
              dw      -1,-1            ; ⥫  ᫥騩 ࠩ
              dw      ATTRIBUTE        ;  ਡ⮢
              dw      offset STRATEGY  ; 窠 室  ணࠬ STRATEGY
              dw      offset INTERRUPT ; 窠 室  ணࠬ INTERRUPT
              db      8 dup (?)        ; ⢮ ன/ 
    ;
    ;*******    ***********************************
    ;
    req_ptr   dd      ?                ; ⥫   
       .
       .
       .
    ;
    ;*******   ******************************************
    ;
    ; ࠭     ணࠬ   REQ_PTR.
    ;  室    室  ॣ ES:BX.
    ;
    STRATEGY  PROC    FAR
              mov     cs:word ptr [req_ptr],bx
              mov     cs:word ptr [req_ptr + 2],bx
              ret
    STRATEGY  ENDP
    ;
    ;*******   *****************************************
    ;
    ; ࠡ , 室   .  
    ;  ᮤন  REQ_PTR  ଥ :.
    ;
    INTERRUPT  PROC    FAR
              pusha                    ; ࠭  ॣ

                                      - 6-19 -
               lds     bx,cs:[req_ptr]  ;    
                .
                .
                .
     INTERRUPT  ENDP
                .
                .
                .
     DRIVER    ENDS
               END

     ---------------------------------------------------------------------

                                 ࠩ

             ࠩ --     18  , 
          稭  ࠩ.  ࠩ ᥣ 
         ᯮ 稭  㫥 ᬥ饭    ᥣ  ࠩ.
           㧪 ࠩ MS-DOS 뢠   ⮣, ⮡
         । ⨯ ࠩ  窨  室    ࠩ.    
         ࠩ ᮤন  ⨯ ᢥ,   ᯮ짮-
          ࠩ ⥬ :   ,   ,  
             /.

                                     裡

                ࠩ  FAR 㪠⥫ (ᬥ-
         饭:ᥣ)  ᫥騩 ࠩ  楯窥 (ᯨ᪥) ࠩ஢.
          ᮧ ࠩ   ⠭ ࠢ묨 FFFF:FFFF
         (-1).    㧪   ࠩ   頥  
         裡 ।饣 ࠩ.  ᪫祭  䠩, ᮤঠ-
         騥  ᪮쪮  ࠩ஢ ६.   ⮬ 砥  
           裡  ᮤঠ ᬥ饭    ᫥饣
         ࠩ.

                                   ਡ⮢

            饥 ᫮  ࠩ 뢠  ᫮  ਡ-
         ⮢.    ᮤন  ⮢ ,   ࠪਧ
         ⨯   ࠩ.   .6-4   ᯮ  
         祭  ⮢    ᫮  ਡ⮢.   ਡ⮢  ࠧ
         ࠩ஢  , ਬ, ᫥饥 祭 :

                ࠩ ᪠ ଠ IBM - 0000H
                ⠭ ࠩ ᮫ - 8003H
                ࠩ ⠭⭮ ன⢠ (. PRN) - 8000H

         15: CHR.   CHR   襭  0,  ᫨ ࠩ ।-
         祭     ன,     ⠭  1,
         ᫨ ࠩ 㤥 㦨 ᨬ쭮 ன⢮  (. ࠧ
         " ࠩ஢ ன").

         14: IOCTL.    IOCTL  易⥫.   ⠭
         ନ MS-DOS  ⮬,  ࠩ ন ।⢠ -
          אַ ࠢ. ᫨ IOCTL  ⠭,  ࠩ -
          ন  3  12 (IOCTL   뢮),  ⨢

                                      - 6-20 -
         砥  14   襭.   㯭 
          㭪権 2  3 ( ᨬ ன)  4  5 (
          ன) 㭪樨 MS-DOS 44H.
         13: NONIBM/OTB.      ࠩ஢    뢠
         ⠪ NONFAT .  ⠭,   㪠뢠  ,
           ன⢮   ন ⠭⭮  IBM
         /MS-DOS  ᪠.  ⮬ 砥 ࠡ⪠ ࠩ஬ 
         INIT  BUILD BPB 㤥 ந室 ᮡ ࠧ.  ᨬ
         ࠩ஢  MS-DOS ᨩ 3.2    ,      
           OTB  (Output  Until Busy) -- "뢮   ",  
         㪠뢠  ,   ࠩ ন ⥫ 
         9  (Output  Until Busy).      ᨬ -
         ன,    让 , ⠪   ਭ-
         .  ࠩ, ᯮ㥬  MS-DOS ᨩ 3.1  -
         ,     襭  0.

         12: NETWORK.    易⥫ ਡ⮬, -
          ।  MS-DOS ᨨ 3.10. ᭮,   NETWORK
          㯮  ᫥饩 㬥樨  MS-DOS ᨩ 3.2 
         3.3,  ⠪  ᯮ짮   饥 ६ ⠢ -
          .    ।祭  ନ஢ MS-DOS  
         ⮬,  ࠩ 㦨 ⥢ ன⢮. ⥢ ன-
         ⢠    ன⢠    ᫮  ਡ⮢;  
         ⮬  饭,  㦨 ⥢ ன⢮ -
          ""  ,  , ⠪ ࠧ, 楫 ७-
         ࠢ  ࠡ 㤠 ன ⥬ 맮.  -
         筮,    ⮣,  ⮡  ᯮ짮  㣠      
         㪠 ७ࠢ, 室 প ᮮ⢥饣
         ।⢠, ⠪  MS-NET.

         11: OCRM. ਡ OCRM (Open/Close/Removable Media) 
         稭  MS-DOS ᨨ 3.0.   ᯮ짮   ᨬ-
         ,  ⠪    ࠩ஢.     -
         ⥫,   Microsoft ४ ⠭   
          ࠩ஢.  祭 ⮣ ਡ, ணࠬ -
         ᮬ ᬮ ।   ᯮ짮 (   ᯮ-
         ).

              ᨬ,  ⠪      ࠩ஢  ⠭
         ⮣    砥  প  ࠩ஬   DEVICE OPEN 
         DEVICE CLOSE ( 13 " ன⢮"  14  "  -
         ன⢮").    ࠩ   ⠭ ⮬ OCRM 
         ⠪ ন  CHECK FOR REMOVABLE MEDIA ( 15,
         "஢ઠ  ⥫").
              ன  DEVICE OPEN  DEVICE CLOSE  -
           ⮫쪮    ०  ᮢ⭮ ᯮ짮 䠩 (file
         sharing).   ० 砥 ᫥ ᪠  SHARE.EXE.
          ⠭ ० ᮢ⭮ ᯮ짮 䠩, -
          DEVICE OPEN 뤠 ࠩ  맮  㭪権  MS-DOS  0FH
         (" 䠩, ᯮ FCB")  3DH (" 䠩  
         맮  㭪権 10H (" 䠩, ᯮ FCB")  3H ("-
          䠩   ⥫").    ᪮ ன -
           DEVICE  OPEN    DEVICE CLOSE  ᯮ짮  
         ᫠ ⨩ । ன⢠, ਬ, ᫠ 
         䠩  ᪥.       । -
         ⨬ ᬥ ᪥  ᪮, ᫨    ⥫

                                      - 6-21 -
         ⠢  䠩.
             ᨬ ன  DEVICE OPEN    DEVICE  CLOSE
         뤠  ᥣ,   ᮮ⢥饥 ன⢮ 뢠 
         뢠,  ᨬ  ० ᮢ⭮ ᯮ짮 䠩-
         ,  ⠪  㧪  SHARE.EXE  ॡ.  ࠡ
          ன⢠   ᯮ짮 ⮫쪮 㭪樨  MS-DOS 3DH
         (" 䠩   ⥫")  3H (" 䠩  -
          ⥫"),  ⠪  FCB-⮤  ࠡ⠥   ன⢠.
          ᨬ ன  DEVICE OPEN  DEVICE CLOSE 
          ᯮ짮  ।饭 ६ 㯠  -
          ன⢠,  ਭ  ,  ⠪  맮 -
          ।-  ᫥ ࠡ⪨,  ⠪  楤 ன ਭ-
           襭 ᥠ 裡  .
            ⨬,  ன⢠ CON,  AUX  PRN  ᥣ, ⠪ 
         易  ⥫ﬨ 0,  1,   2 (STDIN,  STDOUT  STDERR --  
         ⮡ࠦ  ன⢮ CON),  ⥫ 3 (STDAUX, ⮡ࠦ-
           ன⢮ AUX)  ⥫  4  (STDPRN,  ⮡ࠦ  
         ன⢮ PRN).
             CHECK  FOR REMOVABLE MEDIA 뤠  맮 짮-
         ⥫ 㭪樨 MS-DOS 44H  ("ࠢ  ࠡ⮩  ன")  
           8.  ࠩ   ଠ  稨
         ᬥ  ᬥ ⥫.
            ਡ OCRM  (Open/Close/Removable  Media)  ⠪ 뢠
          ࠡ⪥ ࠩ஬  BUILD BPB ("ந   -
         ஢  BIOS").    ⥫  ᮤঠ "䨪
         ⮬", ᨬ쭮  ᪠. ᫨ ன⢮ ন-
          ᬥ ⥫,   ⮬   ।  ࠡ-
         ⠭ ࠩ஬. ஡  ⮬    ᠭ -
          BUILD BIOS PARAMETER BLOCK.

           10  7 : १ࢨ஢.
         ---------------------------------
         6: GIOCTL.   MS-DOS ᨨ 3.3  GIOCTL ("㯯  -
         ࠢ") ⠭  1  樨 ⮣,    
          ᨬ ࠩ ন ⥫  -
          19 (GENERIC I/O CONTROL REQUEST).  ᫨   ࠧ蠥
         ᯮ짮   19,  ࠩ  ⠪ ন -
          23  24 (GET/SET LOGICAL DRIVE --  /⠭  
         ᪮ ᪠).
             প ࠩ஬ 㪠 ,  ணࠬ 짮-
         ⥫    뤠  GENERIC I/O CONTROL REQUEST  
         㭪樨 44H MS-DOS (㭪樨 0CH  0DH).   ࠩ஢
           GET/SET  LOGICAL DRIVE   믮 맮 -
         㭪権 0H (GET LOGICAL DRIVE)  0FH (SET LOGICAL  DRIVE) 㭪樨
         MS-DOS 44H.  祭  ஡ ଠ樨  
         ᠭ 㭪樨 44H  ᠭ  ࠩ GENERIC  IOCTL  
         GET/SET LOGICAL DRIVE.

          5 : १ࢨ஢.
         -----------------------

         4: SPECL.  SPECL  易⥫ ਡ⮬, ᯮ-
         㥬  ⮫쪮 ࠩ஬ ᮫,   ନ騬 MS -DOS  ⮬,
          ࠩ ⠭ ᯥ樠 ࠡ稪 INT 29H  믮-
           ᮪᪮⭮  뢮  ᮫ (ன⢮ CON).  ᫨
           ⠭,   室 ண 뢮  -

                                      - 6-22 -
         ᮫ MS-DOS 뤠 ணࠬ 뢠 INT 29H,  । -
          ᨬ  ॣ AL.   ண 뢮 ࠢ 
           ⮬ 5 (० 筮 뢮)  ᫮ 䨣-
         樨.  뤠 뢠 INT 29H ,  ࠩ 뢥
         ।  ॣ AL ᨬ  ୥ ࠢ.  -
         楤 /뢮 ய᪠.  ⠭ ࠩ ᮫
         MS-DOS,  ⠪    騩  ࠩ ANSI.SYS ন 
         ᮡ.  ᫨ ᯮ㥬 ࠩ ᮫ ন -
         뢠  INT  29H  (  ।  ⥭ ᫮ 䨣樨
         ࠩ),  ਪ ணࠬ ⠪  ⢫ -
          뢮  ᮫, ᯮ INT 29H.
            ⨬,     १ࢭ  㬥樨  IBM 
            ᫥ 㬥樨  Microsoft. 
          䠪   ⮬,   প  SPECL  饬  
         ࠭.

         3: CLOCK.    CLOCK  ⠭  ࠩ ᨬ쭮
         ன⢠, 饣  "CLOCK$",  祭 ⮣ ன-
         ⢠,   ன⢠ ⥬ ६.   ࠩ ன-
         ⢠ "" ࠪ᪨ ᥣ ᯥ稢 ⥬,  室-
          ᯮ짮 ⮣   쭮 ।.
            ࠩ ன⢠ "" 筮      ࠩ஬
         ᨬ쭮  ன⢠    - ⥫ ਡ⮢
         (᫮ ਡ⮢ 8008H).  ६ 뢠  INPUT ()
           ⠭  OUTPUT (뢮).      -
          ᥣ । ஢ 6 ,  ᫥饥 祭 :

                #                  

                0, 1            16         ⢮   1.1.1980.
                2               8          
                3               8          
                4               8            ᥪ㭤
                5               8          㭤

         2: NUL.   NUL 砥,   ࠩ  ࠩ-
         ஬ ன⢠ NUL.  裡  ⥬,   NUL-ࠩ   
         ,     室 ᮧ ࠩ ன⢠
         NUL.

         10: STDIN  STDOUT.  STDIN  STDOUT ,  
         ࠩ  ᮮ⢥⢥ ࠩ஬ ⠭⭮ ன⢠
           뢮.  ன⢠ CON, 㦨饣 ⥬ -
           ,    ᥣ । . -
          ⠭  ࠩ ᮫ (⠪  ANSI.SYS) 
         ⮣,  ⮡  -  ,     
              ⠭묨.  ਡ STDIN  STDOUT 
          ⠭ ⮫쪮   ࠩ   ⨢  (-
           CON-ࠩ ⮦    ਡ,   -
         ⨢ 㤥 ⮫쪮 ᫥ ⠭ CON-ࠩ).

                 祪 室 ணࠬ   

            騥  ᫮  ࠩ ᮤঠ ᬥ饭 ண-
         ࠬ    ,  ᮮ⢥⢥.  MS-DOS ᯮ
          ଠ ᮢ⭮  ᥣ ᮬ ࠩ   -
          祪 室  㪠 ணࠬ.   ࠩ-
          ⥬, 筮 , 㧭   㧪.


                                      - 6-23 -
                           /⢠ ன

            ᫥ ᥬ   ࠩ  㦠    楫.
           ᨬ ࠩ஢   ᮤন ASCII  ன⢠,
          ࠢ ஡. ਬ,  ࠩ ਭ 
           ᮤঠ ப 'PRN '.
              ன  祭 ⮫쪮   .  
         뢠 MS-DOS ᪮쪮 ⤥ ன ন -
          ࠩ஬.    室 ⮬,    
         ஫  ন   䨧᪮ ᪮. 
          ⠫ ᥬ    ⮬ 砥   ᯮ,  ⠬
          ࠭  ன⢠  ᪠ ࠩ    
         䨪樨 ࠩ. ਬ,  ⢠ ன ࠩ-
          RAM-᪠,  뢠 RDISK (. ⨭ 6-10),  
         ।  :

                UNIT_FIELD      DB       1, 'RDISK   '

                                ணࠬ 

            騩 ࠧ  ࠩ ன⢠  -  ணࠬ -
         .   ⨭ 6-1   ⮫쪮   ப  믮塞
         .  ⢥ 祭 ணࠬ  砥 
         ࠭     ᫥饣   ᯮ짮-
          ணࠬ .
             ।⠢ ᮡ  ? ⨭  6-2 ।⠢
           .   稭   
         /뢮  ࠩ.         ॡ-
            ଠ樨,  祬 ᮤন    ,
         ⮬  ᮤন     ଠ樨.    
            ୥,   ᥩ த 㦤 ணࠬ
         .
                     ⨭ 6-2.   
         -----------------------------------------------------------------

         request     equ        ds:[bx]     ;   
         reqhdr      struc                  ;       .
         length      db         ?           ;    ().
         unit        db         ?           ; ⢮ ன.
         command     db         ?           ;    ࠩ.
         status      dw         ?           ; 頥 ﭨ.
                     db         8 dup (?)   ; १.
         reqhdr      ends

         -----------------------------------------------------------------

            稭 ⮣,    ணࠬ  易 ࠭ 
           砥   ⮬,    MS-DOS  믮  
         ⢥ 饭  ࠩ  믮 । -
         .  ᠬ ,  ⥬ ᭠砫  ।⥫쭮 -
         饭  ࠩ  ⮣,  ⮡ ନ஢ ࠩ   ⮬,
             ᤥ  ⥬  ୮ 饭  -
          ॡ㥬 ⢨.
             ⠯ 饭  ࠩ     ࠡ
          MS-DOS - 筮 ⥬.   ⮬ 砥 
          ࠩ  ࠧ   뤠    ६-
         .  ⥬  뤥    ࠩ ᠬ⥫ ⥩ 

                                      - 6-24 -
           믮  ࠩ    ਭ  ⢮
         ᮢ, ६ 㤮⢮ 祭 ࠭ .
            MS-DOS ।  ணࠬ      -
          ES:BX.  ணࠬ   ࠭ ᠬ 
         , 設⢮ ࠩ஢ ࠭稢 ࠭  -
         .   - ⮣,  MS-DOS  饥 ६ -
          ணࠬ  ।⢥ ᫥  ࠢ-
             ணࠬ  ,      ଠ樨    
         .  騩  ਬ  ࠣ ,  
         ࠭  , ᯮ ᠭ ⮤ :

                mov      cs:word ptr [req_ptr],bx
                mov      cs:word ptr [req_ptr + 2],es

            ,   ⮫쪮  MS-DOS  ⠭ 筮,  ࠭
         ⮫쪮 㪠⥫    㤥 㦥  ⨬.    ⮬
         砥  ணࠬ    㤥  ⮫쪮 ࠭ ᠬ
            ,  ,    ᮢ   ।
         (᫨,  筮,  㭪  쬥  ᥡ MS-DOS). 祬,
            ⮣  稫,   짮  -
          ᯮᮡ ࠭  .
             ணࠬ  ⠪  ணࠬ   
         ।    ࠩ   FAR 楤,   ࠢ
         MS-DOS, ᮮ⢥⢥,   RETF.  裡  ⥬,  MS-DOS
         뢠   ணࠬ    CALL ⨯ FAR, 
            ਢ   । ࠢ   -
         ୮  (RETN)    ⥪ (IRET).

                               ணࠬ 

            ᫥ ⮣,    ணࠬ    ࠭ 㪠⥫ 
            頥 ࠢ,  MS-DOS 뢠  ணࠬ
           (뢠 ⠪ 窮 室   㬥樨
          IBM  PC DOS). ⢥   ࠩ ࠡ뢠
          ⮩ ணࠬ.
             ࢮ ⢨, ஥  믮 ணࠬ -
          -  ࠭  ॣ.   饭  ࠩ-
          ன⢠ ⥪   ਬ୮  20 ᫮. ࠭
          ॣ஢,   䫠,  ॡ 14 ᫮.  ᫨ ணࠬ
          ॡ  ࠡ  祬 6 ᫮ ⥪,  -
          ⠭ ᢮ ᮡ⢥  ⥪.
            ᫥ ࠭ ⥪饣 ﭨ , ணࠬ -
                 ,  ࠭ ணࠬ
         .  ᫨  ⮣   ࠭    ਢ-
           ,      ࠬ஢  -
          LDS

               lds        bx,cs:[req_ptr]  ;    

            , 稢     ,   -
           ࠡ.   蠣 砥      .
             㦭    㤥 ⥫쭮 祭,
         ᫨ ᠭ  . ,   ᯮ-
            ࠩ RDISK   । ଠ  -
         ,   ⨭ 6-2.
            ᫨ ࠩ  㦨  ன⢮,  
           ,    ஢७,  

                                      - 6-25 -
         ⢠ ன (request.unit).  ᫥ ஢ન ४⭮
          request.unit,  ணࠬ     
            (request.command),   ॡ  믮-
         .   ࠩ   ࠧ   ,
         ..   ᨬ ࠩ ন ⮫쪮  ன-
         ⢮.
            ।  ,  ணࠬ     ।
         ࠢ ᮮ⢥饬 ࠡ稪.  ⨭ 6-3, ᮤঠ-
         饬 ਬ ணࠬ ,    ᯮᮡ ।-
          ࠢ ॡ㥬 ࠡ稪, ᭮  ᯮ짮
         ⠡ 室.   室 ।⠢ ᮡ ᫥-
         ⥫쭮  ᬥ饭 ணࠬ-ࠡ稪 .   ।
         ࠢ । ࠡ稪  室  㪠  
         ॡ㥬 ணࠬ,   ᢮ ᬥ饭  ⠡ -
         室.   ( 襬 砥   ) ८ࠧ
           ᬥ饭    ⠡,  ᫥  祣 믮 ᢥ 맮
         ணࠬ  室   १ ⠡ 室

                call       word ptr cs:jumptab[bx]  ; ࠡ 

             裡  ⥬,    (..  )   -
         , 祬 ᨬ  ᯮ㥬  , ணࠬ -
           믮 ஢    ⮣,  ⮡  㡥-
            ࠢ쭮.   ⮬,   ࠢ  
         - ࠭ 䨪஢ 祭,  ணࠬ 
         ࠢ    ᨬ쭮 ⨬ 祭, ࠭-
         騬   max_cmd :

                cmp        bl,[max_cmd]             ;  ⨬ ?

             ⮣, ⮡   ࠭ ᨬ쭮 ⨬
         祭    ,  ﭨ    ⠡ 6-2.   ⮩ ⠡
         ।⠢ ,  ন ࠧ묨 ﬨ MS-DOS.
         ᨬ    ,  ᯥ稢 MS-DOS ᨩ  3.0,
          祭 0CH. , 뢠  䠪,  max_cmd ᯮ-
            ,  ࠩ  ஢  祭 
         ६ 樠樨,  , ⠪ ࠧ, ᯮ짮 
         ,  ᫨  ࠩ  㦥    ࠢ   ᨨ
         MS-DOS.

















         
                                      - 6-26 -
                                                          6-2
                           ࠩ஢ ன

    
       륳 -륳 ਡ   
              DOS    -  -         
    
      0:      2.0      +        +              INIT
      1:      2.0      +        -              MEDIA CHECK
      2:      2.0      +        -              BUILD BPB
      3:      2.0      +        +     14:IOCTL INPUT IOCTL
      4:      2.0      +        +              INPUT
      5:      2.0      -        +              Nondestructive INPUT
      6:      2.0      -        +              INPUT STATUS
      7:      2.0      -        +              INPUT FLUSH
      8:      2.0      +        +              OUTPUT
      9:      2.0      +        +              OUTPUT with VERIFY
     10:      2.0      -        +              OUTPUT STATUS
     11:      2.0      -        +              OUTPUT FLUSH
     12:      2.0      +        +     14:IOCTL OUTPUT IOCTL
     13:      3.0      +        +     11:OCRM  DEVICE OPEN
     14:      3.0      +        +     11:OCRM  DEVICE CLOSE
     15:      3.0      +        -     11:OCRM  REMOVABLE MEDIA
     16:      3.1      -        +     13:OTB   OUTPUT until busy
     19:      3.2      +        +     6:GIOCTL Generic IOCTL Request
     23:      3.2      +        -     6:GIOCTL Get Logical Device
     24:      3.2      +        -     6:GIOCTL Set Logical Device
     
      ਬ砭 1.   " DOS" 㪠 ᠬ ࠭ 
                    MS-DOS, 稭  ன ন  .
      ਬ砭 2.   "ਡ" 㪠  ᫮ ਡ⮢
                    ࠩ, ࠧ騩 ᯮ짮  .
     

            ᫥  ணࠬ  ᫥ ࠡ⪨  ॡ-
           砥  ⠭     -
         .   ⨭ 6-3 ,   ࠡ稪    
         頥  襭  ॣ AX. ᫥  ࠢ-
           ࠡ稪,  ணࠬ  뢠    
          ᫮ ﭨ   ( request.status). -
         ⥬ ணࠬ  ⠭  DONE  ("믮")  
         ᫮  ﭨ  頥 ࠢ MS-DOS.    
         ࠢ   믮  RETF, ணࠬ -
          ।  楤 ⨯ FAR.

                     ⨭ 6-3. ਬ ணࠬ .
         -----------------------------------------------------------------
     ;
     ; । ⮢ ᫮ ﭨ ࠩ ன⢠
     ;
     ST_ERROR    equ        1000000000000000b       ; 뫠 訡
     ST_BUSY     equ        0000001000000000b       ; ன⢮ 
     ST_DONE     equ        0000000100000000b       ;  믮
     ;
     ; ।  訡  ࠡ⪥ 
     ;
     WRITE_PROTECT          equ      0              ;   
     UNKNOWN_UNIT           equ      1              ;  ன⢮
     NOT_READY              equ      2              ; ன⢮  ⮢

                                      - 6-27 -
     UNKNOWN_COMMAND        equ      3              ;   
            .
            .
     ;
     ;********** 窠 室  ணࠬ  ************************
     ;
     INTERRUPT    proc       far
                 pusha                              ; ࠭  ࠡ稥
                 push       ds                      ;   ॣ
                 push       es
                 push       cs                      ; ⠭ 
                 pop        ds                      ;   ᥣ 
                 les        di,[req_ptr]            ; 稬  
                 mov        bl,es:[di].command      ;     
                                                    ;   
     ;
     ; ⠭ ࠭ 䫠 訡 ( 砩, ᫨  㤥
     ;   )
     ;
                 mov        ax,(ST_ERROR or UNKNOWN_COMMAND)
                 cmp        bl,[max_cmd]             ;  
                 ja         exit                     ;   ন ?
     ;
     ; । ࠢ ᮮ⢥饬 ࠡ稪.   室 
     ; ࠡ稪 砥 ॣ CS  DS ⠭묨   ᥣ
     ; DRIVER   ॣ ES:DI 㪠뢠騬   .   
     ; ࠡ稪    ॣ AX.
     ;
                 xor        bh,bh                    ; ॢ⨬ 
                 shl        bx,1                     ;    
                 call       word ptr cs:jumptab[bx]  ; ࠡ⠥ 
     ;
     ; 襬   ᫮ ﭨ  
     ;
     exit:       push       cs
                 pop        ds
                 les        di,[req_ptr]            ; 稬  
                 or         ax,ST_DONE              ; , ⠭
                 mov        es:[di].status,ax       ;  DONE  ࠭
                 pop        es                      ; 
                 pop        ds                      ; ⠭ ⥪
                 popa
                 ret                                ; RETF
     INTERRUPT    endp
            .
            .
            .
     ;
     ;**********  室  ࠡ  *******************
     ;
     JUMPTAB     label      word
                 dw         offset INIT            ; 0 - 樠
                 dw         offset MEDIA_CHECK     ; 1 - ஢ઠ ⥫
                 dw         offset BUILD_BPB       ; 2 - ந BPB
                  .
                  .
                  .

                                      - 6-28 -
                 dw         offset NO_COMMAND      ; 16
                 dw         offset GET_LOGICAL     ; 17 -   
                 dw         offset SET_LOGICAL     ; 18 - ⠭ 
                  .
                  .
                  .

     ---------------------------------------------------------------------

             ﭨ,   .6-5, ᯮ  -
         樨 訡,  稢  믮 -  (
         ERROR -- 訡)   ⮡ࠦ ﭨ ன⢠  -
               ஢ન ᬥ ⥫ ( BUSY -- -
         ).

        15  14  13  12  11  10   9   8   7   6   5   4   3   2   1   0
       ķ
        E                 B  D                         
        R                 U  O                   
        R      S  N        15  1     
        O                 Y  E                         
        R                                              
       ͼ
         祭 ⮢ :

            ERROR = 1 :  ࠡ⪥  稫 訡.
                         訡 室    0  7.
            BUSY  = 1 : ⠭   ﭨ
                         ஢ન ᬥ ⥫.
            DONE  = 1 :  믮. ⠭  室.
                 㭮 6-5.  ﭨ ࠩ ன⢠

             ERROR ⠭, ᫨  訡  믮
         -      ᫨    ⨬ 
          ࠩ.   ⠭  訡  ࠩ  易
          ᮮ⢥騩  訡    0  7 ᫮ -
         ﭨ.   訡    ᫥  ⠡ 6-3.  
         DONE   ᥣ ⠭ ࠩ஬ । ⮬ -
         ࠢ  MS-DOS.
                                                          6-3
                           訡 ࠩ஢ ன
         
                    訡                        訡
         
           0    ன⢮ 饭  8    㦥
           1   ன⢮         9   㬠  ਭ
           2  ன⢮  ⮢            A  訡  
           3                 B  訡  ⥭
           4  ୮ ।          C   訡
           5  ୠ   ᠳ D  १ࢨ஢
           6  訡  ⠭     E  १ࢨ஢
           7   ⥫     F  ⨬ ᬥ ᪠
         
          ਬ砭 1.    訡 ।⠢    ⭠-
                          祭.
          ਬ砭 2.   訡 0FH ন ⮫쪮  MS-DOS -
                         ᨨ 3.0   .

                                      - 6-29 -

                             ࠩ஢ ன

             ,   ࠢ,  ᮤন    ଠ,
          ॡ  設⢠ . ,   -
          ⥫쭮 ଠ樨,  쭮    --    
         INPUN/OUTPUT STATUS , FLUSH OUTPUT, OPEN/CLOSE DEVICE  REMOVABLE
         MEDIA.   ⠫  ॡ ࠧ   ଠ樨,
         祬  ᮤন   .       
              ⥫쭠  ଠ.  
         request.length     ᮤন  ⮬ 騩 ࠧ
           ( ).
             祭  㯠    ࠧ ⠬  ,
         -⠪,    ᯮ짮 .   ⨭  6-10
         (⨭  ࠩ  RDISK,  ਢ   ) 
         ।    ,   ࠡ뢠 ⨬
         ࠩ஬.  ,    㦭 ।    -
          ,  .. ࠧ   ᯮ 宦 
         ᮢ.  ⥫⢮ 쭮 㤮, .. MASM  -
          ᯮ짮   ⮦      ࠧ,    
         ࠧ .

                                    INIT
      ͻ
                                                                        
         INIT (0)                                                
                                                                        
                 Ŀ                  
        +00 : 23                             X  . ࠩ   
                                   
        +01 :                 ன⢮         Ŀ                  
                  X  . ࠩ   
        +02 : 00                                            
                                        
        +03 :                                                     
                            
                         १ࢨ஢                                
         Ŀ  Ŀ  
        +13 :       ⢮ ன                     X      
         Ĵ  Ĵ  
        +14 :                                      X      
         Ĵ  Ĵ  
        +18 :          / BPB           X         X      
         Ĵ  Ĵ  
        +22 :            ன⢠           X                
             
                                                                        
         ⠡ BPB 頥 ⮫쪮 묨 ࠩࠬ.     
         ன⢠ ন 稭  DOS 3.10.             
                                                                        
      ͼ

             INIT  (樠) ᥣ  ᠬ ࢮ -
         뢠   ࠡ뢠  ⠯  ⠭  ࠩ.

                                      - 6-30 -
         MS-DOS  뤠      ࠩ ⮫쪮  ࠧ.
             INIT    ⢥⢥    ନ஢
         MS-DOS  ᮡ ࠪ⨪ ࠩ   믮 -
          ⢨  樠樨 ࠩ.  ᫥    
         ⨯ ன⢠,  ࠢ塞 ࠩ஬.  頥 ࠩ஬
         ࠪ⨪ ⠪   ⨯ ࠩ.
             ࠩ     ᫥  ,
          ࠩ஬  ⢮ ன,  ࠢ塞 ࠩ-
         ஬.  ࠩ  ᨬ  ன  ন  
          ன⢠.  ࠩ  ন ᪮쪮
         ன (ਬ, ᫨   ன⢥ ᮤন ᪮쪮
         ᪮).  ஬ ⮣,  ࠩ      ⢥
         ࠬ  ⢠  ন ன,   ४饭
          樠樨.    ॡ,   ਬ, 
         㦥 ⢨ ன⢠.   ⠪ 樨 ࠩ -
          ⠪ ⠭  ᫥ ᯮ㥬   ࠢ
         CS:0 (⥪騩  ᥣ,  㫥 ᬥ饭)  ⮣, ⮡
         MS-DOS  ᯮ짮   ࠩ஬ .  -
         쭮  樨  襭 ।⠢ ᮡ  (ᥣ-
           ᬥ饭) ࢮ ᢮ ᫥ ࠩ   .
         MS-DOS  த  㧪  ⥬ 稭  ᫥饣 ᫥
          襭 ࠣ  ( 稭   -
         , ᫨  室  ࠭ ࠣ).
            ⨩ ࠬ, ।塞  INIT -   ⠡-
          BPB.  㪠⥫, 頥 MS-DOS  INIT, ।-
         ⠢ ᮡ  ⠡,   ᠬ ।⠢ ᮡ -
         㯭  㪠⥫      ࠬ஢  BIOS.   BPB
         ᮤন   㪠⥫   ன⢮, ন
         ࠩ஬.  ࠬ஢ BIOS (, , BPB)  ,
          । ଠ  ன⢠ (. .6-6). 
            ࠬ   ⮫쪮   ன,  
          頥 ᨬ묨  ࠩࠬ.      㪠⥫
         ⠡ BPB        㧪, -
            ᯮ짮  ⨯ ࠩ஢ -   
         ᮤন   ப ࠩ.    㤥 -
          ஡ 㤨 祭 ⮣ .
                                                 
                (hex)
                        ķ
                  +0             ᥪ             
                        Ķ
                  +2        ⢮ ᥪ஢          
                        Ķ
                  +3     ⢮ १ࢨ஢ ᥪ஢    
                        Ķ
                  +5             ⢮ ⠡ FAT            
                        Ķ
                  +6        ⢮ ⮢ ४       
                        Ķ
                  +8        ⢮ ᪨ ᥪ஢        
                        Ķ
                  +A              ⥫  ⥫             
                        Ķ
                  +B        ⢮ ᥪ஢   FAT       
                        ͼ
                        㭮 6-6.  ࠬ஢ BIOS

                                      - 6-31 -
            ᫥ ࠬ, 㭨   INIT,   -
         ன⢠.   ࠬ,   ন ⮫쪮  MS-DOS
         ᨨ 3.10   ,  ᯮ   砫쭮
          ன⢠.   ਬ, ᫨ ࠩ  ࠢ -
          C:   D:,  ᮤন ⮣  㤥 ࠢ 2   ⢮
         ன 㤥 ࠢ . ᫨ ࠩ  ࠢ ⮫쪮
         ᪮ A:,    ன⢠ 㤥 ࠢ 0,    ⢮
         ன 1.   祭 , ⠪    
          殢  ⠭  ࠩ   ࠩ,
         ⠭ 짮⥫.
             INIT  㭨쭮, ⠪     ࠩ-
         ,   믮  ।,   ⮩,  ன 믮-
            ணࠬ.   ⫨稥  ⠫ ,  
         INIT  ᯮ짮 㭪樨 MS-DOS  01H  0CH   30H.  -
          㭪樨  ࠩ 뤠 饥 ᮮ-
           ६ ⠭ , ᫨ 㦭, ⮡ࠧ ﭨ -
         樨  ࠩ.  㭪 30H ("  DOS") 
         ࠩ ந  ।  MS-DOS,   -
          ࠧࠡ稪  ࠩ, ࠡ騥   ᨥ
         樮 ⥬.
            㣮 室⢮  INIT    묨  ணࠬ  MS-DOS
         砥    ⮬,    INIT     ப
         ࠩ  ᯮ짮    䨣樨  ࠩ.    㦥
         㪠뢠,    DEVICE   䠩 CONFIG.SYS  ᫥騩
         ଠ :

                DEVICE=[d:][path]filename[.ext][ parameters]

             饭  ࠩ   INIT  ࠩ  ।
          ,  ᮤঠ饣 ⥪  ப.   -
         ।   㪠⥫ ⠡ BPB    㪠뢠
           ᫥  "=" ᨬ  ப.   祭
         室 ଠ樨 楤 樠樨  ᬮ
          ப,  ய⨢ ᯥ䨪樨 䠩,  ࠡ -
         । ࠬ.  ,   ⫨稥  ⠭  ணࠬ,
          INIT । ⮫쪮   ப,    ᠬ
         ப.  ப  ⮬  ⮫쪮  (   -
           砥  ஢).    ࠩ஢  ,
         筮 ,  㤥 ४ ᮬ ⠡ BPB.
            MS-DOS 頥  ࠩ   INIT  ⮫쪮  
           ६  㧪 ⥬,  ⮬ ,  ॠ騩 ࠡ
         ⮩  ᫥ 襭 ᫥,  㤥 ᯮ  -
          .   ⮣, ⮡ ஢ ᯮ짮 
         ࠩ஬,   ᯮ   INIT ᫥ ।-
           襭  ⢮ ,   楤ன
         樠樨,  ७ ஢ ࠩ (ࠩ RDISK -
          ࠭⢮,   INIT,   
         ).      砥   㤥  ᯮ짮 
         MS-DOS  ࠩ஬.   ⠫ 楤,  ॠ騥 -
         ⠫ ,  ᯮ   襭.


                                      - 6-32 -
                                 MEDIA CHECK
                               ~~~~~~~~~~~~~~~~~~~~~
       ͻ
                                                                         
         MEDIA CHECK (1)                                          
                                                                         
                 Ŀ                   
        +00 : 19                             X  . ࠩ    
                                    
        +01 :            ன⢮         Ŀ                   
                     . ࠩ    
        +02 : 01                                             
                                         
        +03 :                                                      
                             
                         १ࢨ஢                                 
         Ŀ  Ŀ  
        +13 :        ⥫  ⥫           X                 
         Ĵ  Ĵ  
        +14 :         ﭨ ⥫                     X       
         Ĵ  Ĵ  
        +15 :             ⮬                     X       
             
                                                                         
        ﭨ ⥫ : (-1) - ⥫ , 0 - ⥫ - 
        ।, 1 - ⥫  .                              
         ⮬ 頥 ⮫쪮,᫨ : (a) DOS ᨨ   3.00, 
        (b) ⠭ ਡ OCRM  (c) 頥  ⥫   
        ࠢ (-1).                                                      
                                                                         
       ͼ

             MEDIA  CHECK  (஢  ⥫) ᥣ 믮
         묨 ࠩࠬ    ᯮ  ࠩ஢ ᨬ-
          ன.   ᯮ MS-DOS  ࠧ襭
         ஡,     ࠡ  ன⢠, -
         騬 ᬥ ⥫  ଠ樨  :  ⥫  (ਬ,
          )   .    ᪥   -
          ଠ  ᪥  ⫨   ।饣,  
          ᮤন  ᪥ ᮬ 㤥 㣨.
              ᪥ MS-DOS  ந   -
          ᪠ : ࠧ ᥪ, ⢮ ᥪ஢  .. MS-DOS -
           ଠ ⥪饣 ᪠  BPB   ᬥ ⥫ MS-DOS  -
         ॡ   BPB.
             ᫨  ᪥       ଠ,  MS-DOS
            ⮬,    ᪠ ந諠.   ࠧ  
         ᬥ  ⥫  ४ਨ  䠩  ᪥ 猪 
         ⫨  ᮤন ।饩 ᪥,  MS-DOS  -
          :     ⥬ 묨,   ࠭  -
         , ⮢    ।騩 ⥫.
             ࠧ襭     ᮢ MS-DOS 뤠 ࠩ -
          MEDIA CHECK,  訢   ⮬,    ⥫.
         ࠩ          ⢥⮢: ""
         (ﭨ  ⥫  -1),  ""  (ﭨ ⥫ 1)  "
         " (ﭨ ⥫ 0).
             ⮣   ࠦ    ⮬  ⢨,  ஥
         MS-DOS  ।ਭ  祭 ⢥  .  ᫨ ࠩ

                                      - 6-33 -
         ⢥砥 ",  ⥫   ", MS-DOS த ࠡ-
           ⠪,    ஢,  ஢,  ᮤন
         ᪥  .  ᫨ ࠩ ⢥砥 ",  ⥫   -
         ", MS-DOS "뢠"  ࠭騥      -
         訢  ࠩ ࠬ    ⥫.  ,  ᫨
         ࠩ ⢥砥   ᠬ     -  뫠      ,
         MS-DOS  襭  ᥡ. ᫨  - , -
         ⮢    ,  MS-DOS  ।  ⮬,
             ᠬ .   ⨢ 砥   ।-
           ⮬,   ந諠 ᬥ ᪠   த  ࠡ
         ⠪,  ᫨  ࠩ  ⢥ "⥫  ".
               ࠩ  襭   ᬥ -
          MS-DOS । ࠩ ⥪騩 Media Descriptor  Byte  (
         ⥫  ⥫),  ᮪饭 MDB.    室  㯯
         ࠬ஢,  뢠 BPB ( ࠬ஢ BIOS),  -
         頥 MS-DOS  ࠩ INIT  BUILD BPB.  㭨-
         쭮 ଠ ᪠  ᮮ⢥⢮ ᢮ ⥫, -
             ᥣ  ( ࠧ, 뢠饬  BUILD
         BPB,   㦤  ஡).
            ⥫ ⥫  ࠭    ࢮ  , 室饬 
         ᪥ FAT (⠡ ࠧ饭 䠩).  ஬ ⮣,  訩 
         祭  ⨯  ᪠  (.  ⠡.11.5) ।⠢ ᮡ  
         ,   MDB.  ஡  FAT  ⨯ ᪮   㧭,
         ⠢ 11 .
             襭   ⮬,  뫠    ⥫,  ࠩ
          ᯮ짮 ᫥  :

           1. ᫨ ன⢮  ন   ᬥ  ⥫
              (ਬ,  ᫨  ⪨   RAM-),   ࠩ
               ⢥ ",   ⥫  뫮".  ⨢
              砥 室  蠣 2.

           2. ଠ Microsoft ⢥ত,    ᪥  ॡ
                 ᥪ㭤.  ਭ  䠪  , ࠩ-
                ஢ ⥬  , ᫨   ।-
              饣  饭   諮   ᥪ㭤,  
              ⢥ ",   ⥫  뫮".  筮,   ⮤
              ॡ,⮡ ࠩ ᥣ ࠭ ६ 饭  -
              . ᫨ 諮   ᥪ㭤,  室  蠣 3. -
              ,    ᫨   뢠 ⥬ ६,
                蠣  .

           3.  ᠬ ᪮      ନ஢
              ࠩ  ந襤襩  ⥫.   ᪮
              㤮 ஭ 奬, 饩 ᨣ, ᫨ 
              ᪮  뢠   ᫥ 饭  -
              . ᫨ ࠩ 㦨  ⠪ ᪮  ᫥-
               ᮮ頥,     뢠,   ࠩ 
              ⢥ ",   ⥫  뫮".  ᫨   뫠
              ,  室  蠣 4.
                 뢠 ᪮,    ⥫   ⮫쪮
                饭   ᪥  몫,  뤥ঠ 
              ६ ࢠ.  ᫨ ⠪ ᪮  뢠
              ﭨ  ⥫  ⥫  ࠡ⠥   -
               饭,    ᤥ 뢮  ⮬, 
              ᪥  﫠  ࠩ  ⢥ ", 
              ⥫  뫮".  ,  ᪮, ⥫
                  ,   ⠢ ᪥,
                ᤥ १   ஢ન ४묨.

                                      - 6-34 -

           4. ࠩ     ᪠ ⥫  ⥫.  ᫨
                MDB  ⫨砥  । ࠩ  맮 -
               MEDIA CHECK ⥫,   ࠩ    ⢥
              ", 뫠  ⥫".  ⨢ 砥 室  -
               5.

           5. ࠩ    ᪠ 䨪 ⮬. ᫨  
              ⫨砥    ⮣,    ࠭ ࠩ஬  
              ᫥  BUILD BPB,  ࠩ  ⢥ ",
              뫠  ⥫".  室  蠣 6.

           6. ࠩ  ⢥ " , 뫠   ⥫".

              ⠪,   ॠ  -
          ᠭ ⬠. ᫨  - 稭   
         ।,  ந諠   ᪥,  訬 ⢥⮬ 㤥
         " ,  뫠   ⥫".  ⮤ ।
          ⥫ 㤥    ᮡ⥩ ᪮, ⠪
           䨪樨 ணࠬ.
            ᫨ ࠩ ࠡ⠥  MS-DOS ᨨ 3.0  ,  
         MEDIA CHECK     ଠ.  ⮬ 砥,
           ࠩ  ন    OPEN/CLOSE/REMOVABLE MEDIA
         (⠭  11  ᫮ ਡ⮢ ࠩ)      MEDIA
         CHECK  ᮡࠥ ⢥ ",  뫠  ⥫" (ﭨ
         ⥫ : -1), ⮣ ࠩ 易  㪠⥫   -
          ।饣 ᪠ (.   11  祭 ᢥ  -
           ᯮ  ⮬).  ᫨ ࠩ     ⮬
         ।饣 ᪠ (ਬ, ᫨ 饭   MEDIA CHECK

                                  BUILD BPB
       ͻ
         BUILD BIOS PARAMETER BLOCK (2)                           
                                                                         
                 Ŀ                   
        +00 : 22                             X  . ࠩ    
                                    
        +01 :            ன⢮         Ŀ                   
                     . ࠩ    
        +02 : 02                                             
                                         
        +03 :                                                      
                             
                         १ࢨ஢                                 
         Ŀ  Ŀ  
        +13 :        ⥫  ⥫           X                 
         Ĵ  Ĵ  
        +14 :           ⥫  FAT           X                 
         Ĵ  Ĵ  
        +18 :           ⥫  BPB                     X       
             
                                                                         
          ᬥ饭 14  砫   ᮤন 㪠⥫ 
        FAT  IBM-⠭ ன ( 13  ᫮ ਡ⮢ ࠢ
        )   㪠⥫  ""  NONIBM/NONFAT ன  (
        13 ᫮ ਡ⮢ ࠢ 1).                                     
       ͼ

                                      - 6-35 -
         ந室 ),  ࠩ   㪠⥫  -
           "NO NAME"  稢 㫥 ⮬ (..  "NO",  ஡,
         "NAME",  ஡, ).
             BUILD  BPB (ந  ࠬ஢ BIOS) ᥣ -
          묨 ࠩࠬ        ᯮ  
         ࠩ஢  ᨬ  ன.    ,   MS-DOS
         நନ஢  訫 ᠬ,  ⥫ ,  -
           ࠬ  ⥫. 뤠  BUILD BPB,
         MS-DOS  ࠩ  㪠⥫    ࠬ஢ BIOS,
         ᮤঠ騩    祭  (ᮤন    BPB   
         .6-6).
              ࠧ稥  ᮬ BPB, 頥 -
          BUILD BPB  㪠⥫ ⠡ BPB,  頥 
         INIT.    ६,    BUILD BPB 頥 㪠⥫ 
         ᠬ  ࠬ஢ BIOS,   INIT 頥   ⠡
         㪠⥫  BPB.  ࠧ稥  㪠⥫  㪠⥫ 
         㪠⥫ 祢,    筨 訡.
              MEDIA CHECK,  BUILD BPB   -
           䨪஬ ⮬.   MS-DOS ᨨ 3.0    ࠩ,
         ন騥   ⥫  騥 ਡ OCRM
         ( 11 ᫮ ਡ⮢ ࠢ 1),   뢠    ࠭
          ⮬.    㤥  ᫥騬 饭-
         ﬨ   MEDIA CHECK.
            祭  BUILD BPB  ਭ ࠩ஬ 
          ⥬  ⮬,      ந諠  -
         ⥫. ᫨ ࠩ ন 稪 ⢠ "뢠" 
         "뢠",  믮  ன⢠  OPEN DEVICE 
         CLOSE DEVICE,  諠  㫨 .

                          祭  ࠬ஢ BIOS

              ᬠਢ 堭  BPB,     -
           । ᮤন  ࠬ஢ BIOS.  뢠
         ⮤ ਬ  ⮫쪮   BUILD BPB,       
         INIT.    ⥩襬 砥 ࠩ ன⢠,  ন饣
         ⮫쪮  ⨯ ⥫ (ਬ ࠩ RAM-᪠), ᮤন
         BPB   ஢  ⥫ ᠬ ࠩ.   ,
          ࠡ  ॠ묨 ᪠,  ⪨ ᪨,   ⠪
           ࠩ 易 । ᮤন BPB.
             ࠢ, BPB    砫쭮 㧪, 
            .6-7.  ⮬ 砥 ࠩ    -
           ,   㤠  ࠬ஢ BIOS  
          ᫥. ࠪ᪨     砫쭮 -
         㧪 ᯮ  ᠬ ࢮ ᪮ ᥪ ᪠ (..
         ᥪ,  饣    0).  ८ࠧ  ᪮
         ᥪ  न 䨧᪮ ᥪ   ࠪ⨪
         ன⢠    ᠭ  㬥樨  ⮬ ன-
         . ࠩ  ஢  ⮣ ᥪ, ⮡ 㡥-
         ,   ⢨⥫쭮 ᮤন  砫쭮 㧪.
            ᫨   ᪨  ᥪ   ᮤন ४⭮ 
         砫쭮  㧪,  ਬ,   ᪠, ଠ஢ 
         MS-DOS ᨩ  2.0, ࠩ    ᥪ ⠡-
          ࠧ饭 䠩 (FAT).   ,  MS-DOS ᨩ    2.0
         ন ⮫쪮  ᪮쪮 ଠ⮢,    ।-
           ࢮ ᥪ  FAT ண ᪮ ᥪ ᪠. -
            ࢮ  ᥪ  FAT  ᮤন  ⥫ -

                                      - 6-36 -
                                                
                   (hex)
                        ķ
                    +00    室   稪    3 
                        Ķ
                    +03           ⮢⥫        8 
                      Ķ
                   +0B          ᥪ           
                       Ķ
                   +0D     ⢮ ᥪ஢        
                       Ķ
                   +0E  ⢮ १ࢨ஢ ᥪ஢  
                   Ķ
                   +10          ⢮ ⠡ FAT          
       Ķ     Ķ
                   +11     ⢮ ⮢ ४     
         BIOS          Ķ
                   +13     ⢮ ᪨ ᥪ஢      
                       Ķ
                   +15           ⥫  ⥫           
                       Ķ
                   +16     ⢮ ᥪ஢   FAT     
                      Ķ
                    +18     ⢮ ᥪ஢  ஦      
                        Ķ
                    +1A    ⢮  ⥭/     
                        Ķ
                    +1C       ⢮  ᥪ஢       
                        ͼ

          㭮 6-7. ন  30   砫쭮 㧪
          ⥫,   ᯮ짮  । ᮮ⢥-
          饣 ᮤন BPB,  頥  MS-DOS.  ᨨ  MS-DOS
           2.0 ᯮ ⥫ 0FEH  0FFH.   11 ।⠢
          ᯨ᮪ ࠧ 祭 ⨯ ᪮,    MDB.
            믮  ,   ᫥ ,   ⥭
         ᪠   ࠭஢ ࠢ  १⮢.  ᫨  -
         ன⢮   ࠩ  ন  ᪮쪮 ଠ⮢ (ਬ, 
         ࠧ묨 ࠧࠬ ᥪ),   ࠩ    ॡ
         ᪮쪮 ⮪ ⥭  ࠧ묨 ଠ⠬  ⮣,  ⮡ -
         㦨 ४ ଠ. ᫥ ⮣,  ନ஢ BPB  -
         ।  ଠ  ᪠ ࠩ,  ন騩 ன⢮
          ᬥ ⥫  (騩  ਡ  OCRM),  易  
         䨪  ⮬  ᪠.   , ⨢ 
         ୥ ४,  ᠭ   11.

            , ᫥⥫쭮 ࠡ⪨  BUILD BPB ᫥-
           :

           1. ࠩ    砫쭮 㧪 (筮 -
              室騩  ࢮ ᪮ ᥪ ᪠ - ᥪ  #0)  
              ஢   稥  ࠬ஢ BIOS. ᫨ BPB -
              㦥,  室  蠣 3,  室  蠣 2.

           2. ࠩ    ᥪ FAT   ⮣,  ⮡
                 ⥫ ⥫.     MDB,

                                      - 6-37 -
              ࠩ  ᪮஢ ᮮ⢥騩 BPB (. -
               11  ᮮ⢥⢨  MDB  BPB).

           3. ᫨ ன⢮ ন  ⥫ (⠭ 
              11 ᫮ ਡ⮢), ࠩ     ୥
              ४ 䨪 ⮬  ࠭ .

             믮  ⮣  ⬠,  ࠩ   
          ࠭  BPB   ⮬,  ⠪ , ।祭-
           뢠 㤠 ᥪ  ᪠.
             ⨫    ᬮ७  ࠬ,    ।
         ࠩ  饭     BUILD  BPB.  
         .    ࠬ஢ -  ᠭ ࠭ ⥫ -
         ⥫,     樨    祭,  ⠪
             頥 MS-DOS   祭.  ன
         ࠬ -   ,     ᮤন 祣 -
         ⢥ (᫨  13, NONIBM ਡ, ࠢ 1),  ᮤন
          ࢮ ᥪ FAT (᫨  13 襭).  ᫥ -
         砥,  ..  ᫨ ⠬ ᮤন FAT,    ࠧ 
           ஢,   ⠪  ࠩ 易    ᢮
         ,  㤠 㤥 뢠  砫쭮 㧪,   -
         ,  ।  맮  BUILD BPB   
         .
            ᫥ ।⠢  ⬥,     ⫨稥  
         BPB  ⥫  ⥫  ᯥ稢 筮 ।
         ଠ ᪠.  ,  MS-DOS ᨨ 3.0     -
          ᢮ ७ , 樨஢   ᪮-
         ,    ,   ⥫ ⥫  ⠭ ⫨
          ।饣 MDB.   ᬮ  ,  MS-DOS ᨨ 3.0 
              ⢨⥫쭮 祭 MDB, ࠩ
            MDB  ᬥ ଠ ᪥.
             INPUT, OUTPUT   OUTPUT & VERIFY ( 4,  8  9  -
         "", "뢮"    "뢮   ஢મ",  ᮮ⢥⢥) ᥣ
         ॡ   ࠩ஢.      믮
         ।   MS-DOS  ன⢮.
             IOCTL INPUT  IOCTL OUTPUT ( 3  12 - " 
         ࠢ"  "뢮  ࠢ", ᮮ⢥⢥) 
         ⥫묨,  ॡ騬 ⮫쪮  ⠭ IOCTL -
         ਡ ( 14 ᫮ ਡ⮢ ࠩ).   ਬ
           묨 ⠪   ᨬ묨 ࠩࠬ  ᯥ稢 -
         ।   MS-DOS  ࠩ஬.
             OUTPUT UNTIL BUSY ( 16 - "뢮      ")
          易⥫쭮   ᯮ ᪫⥫쭮 
         ᨬ ࠩ஢,   ਡ NONIBM/OTB (  13).  
          ᯥ稢 ।   MS-DOS  ன.  -
          ⠪,      㬥஢  IBM Technical
         Reference Manual  PC-DOS ᨨ 3.30.
             OUTPUT    OUTPUT & VERIFY ⠭ 樥
         ⮣  IOCTL ( 5 - ⮢/⮢ ०)
           樥 VERIFY.  ᫨ ⠭ ० ஢ન,    뢮
          ᯥ稢  OUTPUT & VERIFY. ᫨ ० ஢-
           ⠭,  ᯮ 筠  OUTPUT. ॢ
         ࠩ  ⮢ ० ( ⠭  IOCTL    5)
          ⢫  ।.
              ०,    뫠  맢
         ᯮ짮  OUTPUT UNTIL BUSY,    ⮣. 
          砥 ०  ஢ન (⠪   OUTPUT &

                                      - 6-38 -
                               INPUT  OUTPUT
                             ~~~~~~~~~~~~~~~~~~~~~~~~
      ͻ
                                                                        
        INPUT  OUTPUT (3,4,8,9,12,16)                           
                                                                        
                Ŀ                   
       +00 : 22                             X  . ࠩ    
                                   
       +01 :            ன⢮         Ŀ                   
                 X  . ࠩ    
       +02 :                                         
                                        
       +03 :                          Ŀ
               :               
                        १ࢨ஢                               
                                              03 : IOCTL INPUT        
                                              04 : INPUT              
                                              08 : OUTPUT             
                                              09 : OUTPUT & VERIFY    
                                              12 : IOCTL OUTPUT       
                                              16 : OUTPUT UNTIL BUSY  
                                            ٺ
                                                                        
                                                            
                                                                        
        Ŀ  Ŀ ĺ
       +13 :        ⥫  ⥫           X                 
        Ĵ  Ĵ ĺ
       +14 :                           X                 
        Ĵ  Ĵ ĺ
       +18 : ⢮ ⮢/ᥪ஢           X         X       
        Ĵ  Ĵ ĺ
       +20 :           砫 ᥪ           X                 
        Ĵ  Ĵ ĺ
       +22 :      ⥫   ⮬                     X       
           ĺ
                                                                        
          ᬥ饭  18  砫    ᮤন   室
       ॡ㥬 ⢮ ⮢/ᥪ஢.  ࠩ   
         䠪᪮ ⢮ । ᥪ஢  ⮢.  
       ⥫   ⮬ 頥 ⮫쪮  MS-DOS ᨨ  3.00 
          ᫮,   頥 訡  0FH -- "⨬
        ᪠".                                                   
                                                                        
      ͼ

         VERIFY  㤥 ᯮ짮), ⮢ ० (-
         騩  ।)  ன⢮,  ন饥 
         OUTPUT UNTIL BUSY.  ,  ஢ ⮣ ० -
         ,    OUTPUT UNTIL BUSY  뤠 , 祬 
         ,  ୮,  祬  IBM ⨫    ᢮
         㬥樨.
                   ,   ⫨-
          ⨯ 訢 樨 /뢮  ⨯ ࠩ
         ன⢠.  ᫥ ᭮ ࠬ, ᯮ㥬 
         맮  /뢮 :

                                      - 6-39 -

            *   । 筨   ⥫   ।
              .  ⬥,  樨 ࠢ /뢮-
               ।祭  । ࠩ ࠧ ४⨢ 
              ࠢ饩 ଠ樨,     ।  ।-
              ⢥  ன⢮. ਢ  樨 筨-
                ⥫  :

                                              

                INPUT                          ன⢮    
                OUTPUT                                  ன⢮
                OUTPUT VERIFY                           ன⢮
                OUTPUT UNTIL BUSY                       ன⢮
                IOCTL INPUT                    ࠩ       
                IOCTL OUTPUT                            ࠩ

            *  筨  ⥫  ஭ MS-DOS ।⠢-
               ᮡ  ,    ᮤন   -
               ( OUTPUT),   㤥  묨 (
              INPUT).

            * "⢮ /ᥪ஢" । ᪮쪮  ( ᨬ-
               ன    IOCTL)   ᥪ஢ (
              INPUT, OUTPUT  OUTPUT&VERIFY) 㤥 ( 뫮) ।.

            * 쪮     ࠩ஢  ࠬ "ன-
              ⢮"  "砫 ᥪ", 騥 ⮭宦 -
               ( INPUT)  ⥫ ( OUTPUT).

            * ࠬ " ⥫ ⥫" (⮫쪮   -
              ன)   ᯮ짮  । ଠ -
                ⮣ 䠪,  ⥫  .
             ⮫쪮 ࠩ । 筨  ⥫,  믮-
           ।  .  ᫥ 믮 । ࠩ 
          䠪᪮ ⢮ ।  ⮢    ᥪ஢.
          ᫨  訡  ⠭  訡  -
         頥 ᫮ ﭨ, MS-DOS ⠥,  頥 祭
         ࠬ  "⢮ ⮢/ᥪ஢" ४⭮.  ᫨ ࠩ
          㤠   ࠬ,  頥 祭 㤥
         ⠪        । ࠩ  室.    ⠪
         ,    ᫨ । 諠 ᯥ譮,  稪  -⠪
            ୮ 祭.   ந室  
         .. "४".
            ४⨥ (    ࠩ஢)    ⮬ 砥,
         ᫨ । 襥 ⢮ , 祬  ஥  -
         ᮢ   ᥣ⭮  .  ਢ ᫥騩
         ਬ.  ࠩ 뫠 64 ᥪ  512   
          稭  ᬥ饭 8000H.  ࠧ, 饥 ⢮
         ,  ॡ ।, ⠢ 32768 (8000H).  
         砫쭮  ᬥ饭   ࠢ 8002H,   ᬥ饭 ᫥
          㤥   ४⭮ 祭 10002H.  -
          , ..   ४⨩, ࠩ  
          । ⨦  .
                ᢮ ᮡ ॡ  믮
         ।  ⫨ 頥 祭    稪.
          ॡ ᠭ     .

                                      - 6-40 -

          CTL INPUT  CTL OUTPUT (3  12).
             ⥩訥 ,  筮 ॡ㥬 ⮫쪮   ।
          ᠬ  ࠩ  (  ன)  祭  
         .   MS-DOS      祭, , 
         ⮣,     ந஢ ᠬ ࠩ஬,  ᫨  ⠪
         .  ⢥⢥  ࠡ । ⠪ ࠧ
           ⮫쪮  ࠩ  ਪ ணࠬ.   -
         ,  ᯮ   ० ࠡ  ࠩ  /
         ன⢠,     㣨 ਠ.  ⮫쪮, ⮡
         ࠩ  뢠 ࠢ쭮 ⠭  頥 祭
         稪 । ⮢.

          INPUT OUTPUT (4  8).
          設⢠  ᨬ  ࠩ஢    ࠡ⪨  
         INPUT  OUTPUT 쬠 ᫮.  ᫨ । 諠 ᯥ-
         ,   ⠭  DONE   ᫮  ﭨ  ࠩ  
         ࠩ 頥 ࠢ. ᫨  - ஡,
            ᫮  ﭨ  뢠    ᮮ⢥饩 訡
         (.⠡.6-3), ⠭ 稪  頥 ࠢ.

            ᫨ ᨬ쭮  ன⢮    ⮢   
         뤠  INPUT,  ࠩ       
         訡 "ன⢮  ⮢".  뢮 , ᫨ ன⢮
            ਭ,  ࠩ ⠪    訡. -
          訡 "ன⢮  ⮢" 筮 ᯮ  㪠-
          ⮣,  ன⢮ 몫祭   - 稭 -
         㯭.  ᯮ짮  ⮩  訡  ᥣ    樨
         ⮢    ᫨誮 訬 襭, ⠪ 
         稢 訡 "ன⢮  ⮢",  MS-DOS   -
             ⥫⢮.
              ࠡ    ࠩ஢    믮  権
         /뢮  ᫮.  ࠢ, ࠩ  믮
         ८ࠧ  砫쭮 ᥪ  न 䨧᪮
         ᥪ,  筮 騥   樫  (஦),  
             䨧᪮ ᥪ  ஦.  ,  
         ࠩ ਤ 믮  ॢ   ⥭/-
            ᮮ⢥ ஦ । 砫 । ,  
         ,   ᠬ । ᥪ஢.  ஡ ன-
         ⢮ ᪠ ᠭ   11.
             ⮣, ன⢠,  ᪮,  筨-
          ⢠ 訡 (.⠡.6-3), ⠪  "  ன-
         ⢮ 饭",  "୮ ।  (訡 CRC)",  "訡
          ⠭ ", "訡  ⥭", "訡  ",
           ⠪ 筠  " 訡". 筮  
         訡 ࠩ 䨪  訡  ᫮ ﭨ, ⠭-
          稪 ᯥ譮 । ᥪ஢  頥 ࠢ.
           訡 ॡ 쭥襣   ࠡ⪨  - 
         "⨬ ᬥ ᪠".
            訡 "⨬ ᬥ ᪠" ਭ MS-DOS ᨨ
         3.0    ⮫쪮  ⮬ 砥,  MS-DOS    -
            ன⢮, ন饬  ⥫ (⠭
         ਡ OCRM  ᫮ ਡ⮢ ࠩ).  ⫨稥 ⮩ 訡 
         ⠫ 砥  ⮬,   ᫨ ࠩ ନ MS-DOS
          ⨬  ⥫,  MS-DOS        ,
         ᮡ⢥,  ᪮ ॢ ࠡ ࠩ.   ଠ
         ।  ⮬  ᪠,  㪠⥫   ஥

                                      - 6-41 -
           ࠩ.      MEDIA CHECK,  ᫨ ᮮ-
         饥  ࠩ  ⭮,        
         ப "NO NAME".
             㧭 ࠩ  ⨬  ⥫?  ᫨ ࠩ-
           稪 ⢠ ⨩  ⨩,  믮 
         ன⢥ ( 13  14)       짮⥫
         (  । 㣨 ଠ⮬,  㣨 ⥫ ⥫ 
         ..)  ⢥ ⨩ ॢ饬 ⢮ ⨩, 
           뢮    ⮬,    ⥫ 뫠 ⨬ 
         ନ 訡 "⨬ ᬥ ᪠".

          OUTPUT & VERIFY (9).
          OUTPUT & VERIFY(뢮  ஢મ) ਬ ⮫쪮 
          ன,     뢠  ᫥  -
            ன⢮  ⮣,  ⮡ 㡥  ४⭮ -
          樨.   ⠪ ன  (ਬ    ᪮)
         ࠩ    뢮  (⠪     OUTPUT),
         뢠  ⭮ (⠪    INPUT)   ࠢ  ⠭
           ⥬,   뫨 ᠭ. ᫨ 㦥 訡, 
         ࠩ ᫥     㤠  ,  
         ᮮ    ⮩  樨  MS-DOS,   ᮮ⢥騩 
         訡 (.⠡.6-3)  ⢮ ᯥ譮 ।  ⮢/ᥪ-
         ஢.

                   砥       BUILD BPB,   ࠡ⪠ 
         OUTPUT & VERIFY ॡ   ࠩ ७  
         뢠 ஢塞 .  ᫨ ன⢮   -
         뢠  ⭮,        ࠡ뢠
         ⠪    OUTPUT ( 8).

          OUTPUT UNTIL BUSY (16).
             OUTPUT UNTIL BUSY ।⠢    ࠧ
          OUTPUT.   ,   ᯮ ⮫쪮  ᨬ-
         묨 ன⢠, ࠩ   ਡ OTB ( 13
         ᫮ ਡ⮢),   ணࠬ । 訥 樨
          ன⢠,    ७   (⠪  
         ਭ).  ࠩ ⠪ ன⢠  뫠  
               ,   ன⢮  ﭨ
          ਭ. 祭 , ⮡ ⠪ ࠩ ४⭮ ⠭-
          稪 । ⮢, ⠪ ⮡ MS-DOS   -
         ⢮  㦥 ।.   ,    ⮩ -
              訡筮  ,    ।  
         , 祬 뫮 襭.
             NONDESTRUCTIVE INPUT WITHOUT WAIT (ࠧ饥  -
         뢠    ) ॡ ⮫쪮  ࠩ஢ ᨬ
         ன   ᯮ   ࠩ஢.    -
          宦   ᨬ  INPUT,    -
          ᪮쪮  ⫨稩 :
            *       稪  ⢠  ।
              .    맮  ⮩  ॡ㥬 ⢮ 
              ᥣ ࠢ 1  ᫨ ன⢮  ⮢  ।⠢  
              ,    頥      "⠭  ன⢠
              "  .

            *  . ᫨ ன⢮  ⮢ ।⠢ ।-

                                      - 6-42 -
                      NONDESTRUCTIVE INPUT WITHOUT WAIT
                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ͻ
                                                                       
        NONDESTRUCTIVE INPUT WITHOUT WAIT (5)                   
                                                                       
                Ŀ                  
       +00 : 14                                . ࠩ   
                                  
       +01 :                 ன⢮         Ŀ                  
                 X  . ࠩ   
       +02 : 05                                            
                                       
       +03 :                                                     
                           
                        १ࢨ஢                                
        Ŀ  Ŀ ĺ
       +13 :  ⠭  -                      X      
           ĺ
                                                                       
      ͼ
               ᨬ,  ࠩ  ⠭  BUSY  -
                 DONE  ᫮ ﭨ   ⥫쭮 
              ࠢ.

            * ⥭  ࠧ饥.  ᫨  ன⢮  ⮢ 뤠 
              ,  ࠩ 易  ⮫쪮   , 
                ࠭   ⥭ ᫥饩  INPUT. ᫨
                 ࠩ஬  । (  ࠢ-
              塞 뢠ﬨ ࠩ),   頥 ⮩ -
                   ।.

               ।祭    ⮣,  ⮡  MS-DOS   ,
         -, । 稥 ,  ᯮ  INPUT,
           ਢ  ⥫쭮  ,  , --
                         STATUS  FLUSH INPUT/OUTPUT
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         ͻ
          STATUS  FLUSH INPUT/OUTPUT (6,7,10,11)               
                                                                       
                  Ŀ                
         +00 : 13                                . ࠩ 
                                  
         +01 :            ன⢮         Ŀ                
                   X  . ࠩ 
         +02 :                                      
                                       
         +03 :                            Ŀ 
                  :           
                          १ࢨ஢                            
                  6 : INPUT STATUS   
                                                  7 : INPUT FLUSH    
                                                 10 : OUTPUT STATUS  
                                                 11 : OUTPUT FLUSH   
                                                 
         ͼ

                                      - 6-43 -
         ,  ஢ ᫥騩 ᨬ      -
         㤠.
             I/O STATUS  I/O FLUSH ( 6,10  7,11, ᮮ⢥-
         ⢥) ॡ ⮫쪮  ᨬ ன    ᯮ-
          묨.
             INPUT  STATUS  INPUT FLUSH   ⮫쪮  
         ࠩ஢ ᨬ ன,   ন ࠢ塞
         뢠ﬨ ।  ,      -
         뢠   ᨬ쭮 ࠩ. INPUT STATUS -
           樨 ﭨ । ᫥騬 ࠧ:

            * ᫨ । ,    ,   ࠩ  ⠭-
                  DONE  BUSY  ᫮ ﭨ   ࠢ-
              .

            * ᫨  ।  ᨬ,  㯭  ⥭,  ࠩ-
                ⠭  DONE,    BUSY  
              ࠢ.

            * ᫨ ।  ন,  ࠩ  ⠭
               DONE,    BUSY  ᫮ ﭨ   -
              ࠢ.  룫廊 ࠭ -  㢥 MS-DOS  -
              稨 ᨬ,   । .᭥ 砥 
              ⮬,  ᫥ ⠪ ⢥ MS-DOS 뤠  INPUT 
              뢠 ᨬ.  ᫨  ⮣  ᤥ,  MS-DOS -
               த 訢     ᪮筮, ⠪ 
              - ⢨ ।  ᥣ 㤥   ⥬ .

             INPUT FLUSH  ਬ  㢥 ࠩ  -
         室 㤠  室      室
         ।  ᨬ.  ᫥  ⪨ । (᫨ ⠪ )
         ࠩ  ⠭  DONE   ࠢ.   -
         ࠡ⪥ ⮩      訡,  ࠩ-
           MS-DOS ।,     ᥣ 蠥
         ᯥ譮.
             OUTPUT STATUS ᯮ  ஢ન ﭨ  -
         室  ।  ன⢠.  ᫨ ࠩ  ন -
         室 ।,  ᫥,  ,  ﭨ -
           ன⢠.  ﭨ  ।  ⮬ BUSY ("")
         ᫮ ﭨ (ﭨ "" 砥  뢮 ন-
         ).  ⠭ ﭨ, ࠩ  ⠭  DONE 
          ࠢ.
             OUTPUT FLUSH ।祭  㪠 ࠩ -
         室 㤠  室騥  室 । ᨬ (-
          । ন) , ᫨  ,  ४-
           樨  뢮.  ᫥  믮    ⢨
         ࠩ    ⠭  DONE  ᫮ ﭨ ࠩ 
          ࠢ MS-DOS.
             DEVICE OPEN  DEVICE CLOSE ( 13   14) 
         易⥫묨 , ন MS-DOS ᨩ 3.0  -
         ,  ᯮ ⮫쪮 ᫨ ࠩ  ਡ OCRM ( 11
         ᫮  ਡ⮢ ࠩ ࠢ 1).   Microsoft ४
         ᯮ짮      ᮧ ࠩ.

                                      - 6-44 -
                     DEVICE OPEN/CLOSE  REMOVABLE MEDIA
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         ͻ
                                                                       
          DEVICE OPEN/CLOSE  REMOVABLE MEDIA (13,14,15)        
                                                                       
                  Ŀ                
         +00 : 13                             X  . ࠩ 
                                  
         +01 :            ன⢮         Ŀ                
                      . ࠩ 
         +02 :                                      
                                       
         +03 :                            Ŀ 
                  :           
                          १ࢨ஢                            
                 13 : DEVICE OPEN    
                                                 14 : DEVICE CLOSE   
                                                 15 : REMOVABLE      
                                                      MEDIA CHECK   
                                                 
         ͼ


             REMOVABLE  MEDIA  (15)  ⥫쭮 
           ࠩ஢  MS-DOS 3.0     ᯮ  ⮫쪮
          稨  ࠩ ਡ OCRM ( 11 ᫮ ਡ⮢). 
          ⠪ ४  ᯮ짮  ମ  Microsoft  
           ࠩ.

            ᫮,       ந室   饭      
         DEVICEOPEN  DEVICECLOSE,  ᠭ   ࠧ " -
         ⮢",  " 11 : OCRM".
              ன  ᬥ ⥫ ଠ樨  -
             ᯮ짮  ᫥ ⢠ 
          ன⢥ 䠩, , ⠪ ࠧ, 㦨 -
           ⨬   ⥫ (   
         ᪠,  ஬    䠩).
             ᨬ ன     ᯮ짮 
         ।饭 ६ 㯠 ࠧ ணࠬ  
         ன (⠪  ਭ)    ᯥ祭 ⥩
         ।  ᫥ ࠡ⪨ ன⢠ (ਬ, 権 㧪 
          ਭ).
             REMOVABLEMEDIA     뤠 ਪ ணࠬ-
         ,  ᯮ 㭪 "஢ઠ 塞 ⥫" 㭪-
         樨 IOCTL (㭪 08H 㭪樨 44H).   맮  ⮩ 㭪樨
         ਪ ணࠬ    饣   ᪮-
         .  稢  REMOVABLEMEDIA,  ࠩ  ।
           㯮⮥ ன⢮   ⥫  -
           ⮬ BUSY ᫮ ﭨ ࠩ.  ᫨ ன⢮
          ন ᬥ ⥫,  ࠩ  ⠭  
         BUSY,  ⨢ 砥  .
             GENERIC IOCTL (19)   ⥫쭮  ,
         ন  MS-DOS 稭  ᨨ 3.20.  ᯮ짮 ⮩
          ࠧ蠥 ⠭  1 ਡ⮬  GIOCTL  (  6)
         ᫮ ﭨ.

                                      - 6-45 -
                                GENERIC IOCTL
                              ~~~~~~~~~~~~~~~~~~~~~~~
         ͻ
                                                                       
            GENERIC IOCTL (19)                                  
                                                                       
             Ŀ                     
           +00 : 23                      X  . ࠩ      
                                  
           +01 :            ன⢮  Ŀ                     
                 . ࠩ      
           +02 : 19                                        
                                       
           +03 :                                                 
                           
                            १ࢨ஢                            
            Ŀ  Ŀ   
           +13 :     㭪樨 (訩)    X                   
            Ĵ  Ĵ   
           +14 :     㭪樨 (訩)    X                   
            Ĵ  Ĵ   
           +15 :     ন ॣ SI    X                   
            Ĵ  Ĵ   
           +17 :     ন ॣ DI    X                   
            Ĵ  Ĵ   
           +19 :    IOCTL     X                   
                 
                                                                       
         ͼ

             "㯯  ࠢ /뢮"    ᮢᥬ
         筮,  ⠪     ᯮ  প ࠩ஬
         ⥫ ⥩.   㯯 ⥫  㭪権
         (  ன ᯥ稢 IOCTL 㭪樥 0CH) ন-
             ४祭     ࠭   (code   page
         switching),  ।⢠    ⨢  ४䨣樨 ࠩ.
         㣠  㯯 㭪権 (    ன  ᯥ稢
         IOCTL 㭪樥 0DH) ᯥ稢 ⠭ 䥩  -
         ஧ᨬ 権  ࠩ஢. 樨, 室騥
           㯯,  ⥭, , 䨪, ଠ-
          楫 ஦,  ⥭  䨪  ࠬ஢  BIOS
         (BPB).
            ७   GENERIC IOCTL  ᠭ 
         "MS-DOS Technical Reference Manual" ("MS-DOS.  孨᪮ -
         ")  ࠧ,  뢠饬 㭪 44H MS-DOS.   裡  ⥬,
           㭪樨 ।祭  ᭮  প 㤮-
          ந⥫,  뫠 ⥫  㯮⮬ 㪮-
           祭  ஡ ଠ樨.
             GETLOGICALDEVICE  SETLOGICALDEVICE (23  24) 
         ⥫묨    ࠩ஢  ন
          MS-DOS 稭  ᨨ 3.20.  ᯮ짮   ࠧ-
         蠥   稨  ࠩ ਡ GIOCTL ( 6 ᫮ -
         ⮢) ࠢ 1.

                                      - 6-46 -
                          GET & SET LOGICAL DEVICE
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         ͻ
                                                                         
          GET & SET LOGICAL DEVICE (23,24)                        
                                                                         
                  Ŀ                  
         +00 : 21                             X  . ࠩ   
                                    
         +01 :            ன⢮         Ŀ                  
                      . ࠩ   
         +02 :                                        
                                         
         +03 :                          Ŀ
                :               
                          १ࢨ஢                              
                                               23 : GET LOGICAL DEVICE 
                                               24 : SET LOGICAL DEVICE 
                                              ٺ
                                                                         
                                                             
                                                                         
          Ŀ  Ŀ ĺ
         +13 :       ( ன⢠)           X                
          Ĵ  Ĵ ĺ
         +14 :                            X                
          Ĵ  Ĵ ĺ
         +15 :                                X                
          Ĵ  Ĵ ĺ
         +17 :            १ࢨ஢                     X      
             ĺ
                                                                         
         ͼ
                 ᯮ    ᫥   ⥪饣
         ᪠  ன,  ᪮쪮 ᪨ ᪮. 
          GENERICIOCTL,  GET/SET LOGICAL DEVICE 㯭 -
         १ 㭪 44H MS-DOS.  㭪 0H ਬ   祭
         ⥪饣    ᪮ ᪠,   㭪 0FH  ᢮
             ᪮  ᪠.               
         GENERICIOCTL,  GET/SET LOGICAL DEVICE ।祭,  -
         ,  প ன ந⥫ (ਬ,  砥
         ࠩ  DRIVER.SYS,   প 3.5-  ᪮).
          ᠭ           "MS-DOS  Technical
         Reference Manual"  ࠧ, 뢠饬 㭪 MS-DOS 44H, 㤠
            뫠.

                   㧮筮 䠩 ࠩ ன⢠

             㦥 㯮,  ணࠬ ࠩ ன⢠ 宦
           .COM ணࠬ.   ⢥ত ⥬  ⨭ 
         ᯮ짮 뢠 ⮤ ᮧ .SYS  䠩  ࠩ.
         ,    稭, ஬ ᮣ襭,  ᯮ짮-
          ७ .SYS  䠩 ࠩ஢ -  ⨬   -
         ७.   ⨭ 6-4 ।⠢   ⥬  ᮧ-
          ࠩ "DRIVER".   䠩 ᥬ    
         筠 ணࠬ, ᫥ 祣 ८ࠧ   .SYS 䠩.
         ⬥⨬, ⢨ ⥪  ࠩ  ଠ -

                                      - 6-47 -
         ,  ⠪    ࠩ  ࠡ ᯮ ᮡ⢥ ⥪
         MS-DOS.

             ਬ,  ਢ  ⨭ 6-4, ᮧ ⠪ 室-
           .LST  䠩  ᥬ  室 .MAP 䠩 । 痢
         (). 筮 , .OBJ  .EXE 䠩   㤠 ᫥
         ᮧ .SYS 䠩.

                 ⨭ 6-4.  ᮧ ⮣ ࠩ
         -----------------------------------------------------------------
         C> masm driver,driver,driver;

         Microsoft Macro Assembler Version 4.00
         Copyright Microsoft Corp 1981, 1983, 1984, 1985.
         All rights reserved.

           45976 Bytes symbol space free

              0 Warning Errors
              0 severe  Errors

         C> link driver,driver,driver;

         Microsoft 8086 Object linker
         Version 3.00 Copyright Microsoft Corp 1983, 1984, 1985

         Warning: no stack segment

         C> exe2bin driver driver.sys

         -----------------------------------------------------------------

                            ⫠ ࠩ஢ ன

            ᫥ ⮣,   ࠩ ⠭  ⥬,  㦥  
          ⫠   MS-DOS (- ஡ ॥ࠡ쭮).
          ⫠ ࠩ 室, ⠪   ࠪ-
          ᥬ ணࠬ 㤭   ࠩ  ࠢ쭮  ࠡ
         ᫥  ࢮ ᪠.   襭  ⫠ ࠩ஢ 
            ஭.
            -, ࠧࠡ뢠  ࠩ  孮 "ᢥ "
         - ⠢  ࠡ ᭮  ணࠬ,  ⥬ -
           ᫮ .  ⠩ ᤥ   । -
         ࠡ稪 IOCTL. 楤ࠬ, ࠢ쭮 ࠡ   
            ।,   ணࠬ   -
         ,  ⠪ 楤 樠樨 INIT.   ࠩ
            ⠪  ࠢ쭮 ࠡ  MEDIACHECK ,
         ᫨ ⮫쪮   ⠭ NONIBM   ᫮ ਡ⮢, -
          BUILDBPB.   ⠪  㭪権 , 筮,  ᬮ-
          믮 樨 /뢮,    MS-DOS  ᬮ  
         ࠩ  ᯥ譮 㧨  ࠩ.
            㣮 室,      ⫠ ࠩ஢, -
         砥  ᯮ짮 㭪権 BIOS  뢮 ଠ樨,  -
         ।饩 ⥪饥 ﭨ ࠩ.   ,  ண
         襫 ࠩ, ० 祬 ਩  祭  
         ⫠. ᫨    ROM-BIOS,    , 
           ந  ࠩ ࠧ ணࠬ 뢮.  -

                                      - 6-48 -
         , ⫠ ࠩ RDISK (ਢ     ⮩  ),
           ந  ࠩ ।⢠ 뢮  ᯫ -
         饣 ᨬ   ࠡ뢠  ("I"  -
         ,  "S"  , "i"  INIT  ..).  ।⠢﫮
         ⢨⥫   ࠩ 㦠    㯥  
           뢠 אַ 㯠  ,   "ᢠ" 
         ⪥ ⥭ ४ ᪠. ⢨  ࠩ஬ 
         ⥬         ᠬ ᫮ ஡  ,   -
         , 筮   ⫠ ⮫쪮 ᫥ 㧪 ࠩ-
         .
            ᫨  訫  ⫠    襬 ࠩ,
         ,    ⭥ ᥣ 㢥 ॡ㥬 㡨 ⥪
          ,  , ਤ ᯮ짮  ࠩ  ⥪
         (᫨, 筮,    ᤥ ⮣).
             ஢ ⤥ ⥩ ࠩ   -
          ⫠  ᫥  㧪.  ᫨    -
         ,  祭  ᠭ ⮩ ⮢ ணࠬ, ᮧ-
         饩   ᮢ  ।饩  ࠩ  ࠡ⪨, 
          ᬮ ᯮ짮  ணࠬ DEBUG  ⫠  -
         ⮢ ணࠬ  ᠬ ࠩ.     ࠩ-
           ﭨ,   ஬  㦥   㦥,  ᫥
         祣  ᯮ짮  㣨 ᯮᮡ ⫠  ࠢ ⠢-
          訡.
             ࠧࠡ⪥  ࠩ஢ ᥣ   ⥬
         ᪠.  訡  ࠩ  ਢ  ⮬,   ⥬  
         㤥  㦠   ࠧ襭 - 稬  
         ᪥.  ⨬ 稭  ᫥ ᥣ   ⥬
         ᪠.

                ⮡ࠦ ᯨ᪠ 㦥  ⥬ ࠩ஢

            祭   ⫠ ࠩ஢    -
          ࠩ 㦥   .   砩  ਢ
         ⥪ 让 ணࠬ,  SD (SHOW DRIVERS -  
         ࠩ). ਬ  뢮 ⮩ ணࠬ ଠ樨 -
           ⨭ 6-5.
            設⢮ ⮡ࠦ ࠩ஢  ⠭묨 ࠩ-
         ࠬ MS-DOS,   ᪫祭 孥  ࠩ  CON-ன⢠
         (ࠩ ᮫),   ࠩ஬ ANSYI.SYS,  -
           ࠩ,   Bernulli Box ࠩ஬.
             ࠩ   ⠭ MS-DOS ࠩ஬,
         ন饬 ६  ⪨    .
             Attrib  ᮤন  ᫮  ਡ⮢ ࠩ஢,  
         Address ᮤন 砫   ࠩ (  
         裡  ।饣  ᯨ᪥ ࠩ)   STRAT  INTRP -
         ঠ ᬥ饭 ணࠬ     砫 ࠩ-
         .  室 ⥪ ணࠬ SD  몥 ᥬ  ਢ  
         ⨭  6-6.  ,     ணࠬ SD ᯮ 䠩
         DRIVER.INC (⨭ 6-7),  STDMAC.INC (⨭ A-7, ਫ A)
          ணࠬ BIN2HEX 䠩 STDLIB.LIB (⨭ A-8, ਫ A).


                                      - 6-49 -
          ⨭ 6-5. ਬ 楯窨 ࠩ஢, 뢮 ணࠬ SD
     --------------------------------------------------------------------
     SD-ShowDriv, Version 1.00, Copyright 1988 Kevin Jaeger
     Device         Type   Units   Attrib    Address       STRAT   INTRP
     -------------------------------------------------------------------
     NUL            Char    01      8004    0000:1898       1418    141E
     CON            Char    01      8013    08A9:0000       00A2    00AD
     --------      Block    02      0000    083D:0000       00A7    00B2
     CON            Char    01      8013    0070:0160       00A7    00B2
     AUX            Char    01      8000    0070:01F1       00A7    00B8
     PRN            Char    01      A000    0070:02A0       00A7    00C7
     CLOCK$         Char    01      8008    0070:034A       00A7    00DC
     --------      Block    03      0800    0870:0416       00A7    00E2
     COM1           Char    01      8000    0070:0203       00A7    00B8
     LPT1           Char    01      A000    0070:02B2       00A7    00C7
     LPT2           Char    01      A000    0070:0B13       00A7    00CD
     LPT3           Char    01      A000    0070:0B25       00A7    00D3
     COM2           Char    01      8000    0070:0B37       00A7    00BE
     <<< ------------------ End Of Driver List --------------------- >>>
     --------------------------------------------------------------------
                ⨭ 6-6. 室 ⥪ ணࠬ SHOWDRIV.ASM
     ---------------------------------------------------------------------
     PAGE   60,132
     ; ************ SHOWDRIV *********************************************
     ;
     ; SHOWDRIV - ⮡ࠦ ᯨ᪠ 㦥 ࠩ஢ MS-DOS
     ;
     ; ************ INCLUDES *********************************************
     ;
     INCLUDE        stdmac.inc
     INCLUDE        driver.inc
     ;
     ; ************ DGROUP (DATA) COMPONENT SEGMENTS *********************
     ;
     _DATA          SEGMENT BYTE PUBLIC 'DATA'
     _DATA          ENDS
     ;
     STACK          SEGMENT PARA STACK
                    dw      1024 dup (?)
     STACK          ENDS
     ;
     DGROUP         GROUP   _DATA, STACK
     ;
     ; ************ DATA STORAGE & TEMPLATES *****************************
     ;
     _DATA          SEGMENT
     ;
     ; ࠬ  ᪠
     ;
     nuldev         db      'NUL     '              ;  NUL ࠩ
     nulattr        dw      AT_CHR OR AT_NUL        ;  ਡ⮢
     ;
     ; ⮢ ᮮ饭  뢮  ᯫ. ଠ :
     ;
     ; "Device         Type   Units   Attrib    Address     STRAT   INTRP"
     ; "-----------------------------------------------------------------"
     ; "xxxxxxxx       xxxx    xx      xxxx    xxxx:xxxx     xxxx    xxxx"

                                      - 6-50 -
     ; "<<< ------------------ End Of Driver List ------------------- >>>"
     ;
     $title db CR,LF
            db 'SD-ShowDriv, Version 1.00, Copyright 1988'
            db CR,LF,CR,LF
            db 'Device         Type   Units   Attrib    Address'
            db '       STRAT   INTRP'
            db CR,LF
            db '-----------------------------------------------'
            db '--------------------'
            db CR,LF,'$'
     $space db '    $'
     $block db '--------     Block    $'
     $char  db 'Char$'
     $colon db ':'
     $end   db CR,LF
            db '<<< ------------------ End Of Driver List -----'
            db '---------------- >>>'
     $crlf  db CR,LF,'$'
     ;
     ;  
     ;
     devhead        STRUC                  ;   ࠩ
            next    dd      ?              ; ⥫  ᫥饣...
            attrib  dw      ?              ;  ਡ⮢
            strat   dw      ?              ; 饭 ணࠬ 
            intrp   dw      ?              ; 饭 ணࠬ 
            dname   db      8 dup (?)      ; /⢮ ன
            term    db      ?              ;   ࠩ
     devhead        ENDS
     ;
     _DATA          ENDS
     ;
     ; ************    ***************************
     ;
     _TEXT  SEGMENT BYTE PUBLIC 'CODE'
            ASSUME  cs:_TEXT, ds:DGROUP, es:DGROUP, ss:DGROUP
     ;
            EXTRN   bin2hex:near           ; ⭠ 뢮
     main   PROC    FAR
            mov     ax,DGROUP              ; ⠭ ᥣ 
            mov     ds,ax
     ;
     ;  NUL-ࠩ   ᪠  "NUL"
     ;
            cld
            mov     cx,0FFFEh              ; 稪  ᪠
            xor     ax,ax                  ;
            mov     es,ax                  ; 砫 ᪠ ᫥ ⠡
            mov     di,0400Hh              ;   뢠
            mov     al,nuldev              ; 稭  ᪠ ⮩ 㪢
     search:
            repne   scasb                  ; 饬   
            jne     exit                   ;  諨...
     ;
            push    cx                     ;  諨...
            push    di                     ; ࠭ ⥪ 

                                      - 6-51 -
            mov     si,offset nuldev+1     ; ⮪ ப "NUL     "
            mov     cx,7                   ;  ⪠
            repe    cmpsb                  ; ࠢ ⮪ ப
            jne     not_it                 ;  ᮢ...
     ;
            sub     di,(offset term - offset attrib) ; ஢塞 㪠⥫
            cmpsw                            ;  ਡ NUL-ࠩ ?
            jne     not_it                   ; ...
            add     sp,4                     ; 塞 ࠭ DI  CX
            sub     di,(offset strat - offset next) ; ࠢ 㪠⥫
            jmp     found_nul                ; 諨  NUL-ࠩ!
     ;
     not_it:                                 ; ⠭ 
            pop     di                       ;    稪
            pop     cx
            jmp     short search
     ;
     ; 諨  NUL-ࠩ.  뢮  楯
     ;
     found_nul:
            @DisStr $title                   ; 뢮  ()
     show_driver:
            call    ShowDeviceInfo           ; ⮡ࠧ  ࠩ
            cmp     word ptr es:[di],-1      ; ஢ਬ   楯窨
            jne     done                     ; ᫨ (-1)   室
            les     di,es:[di].next          ; ᫨  (-1)   ᫥騩
            jmp     short show_driver        ;   
     done:
            @DisStr $end                     ; 饥 ᮮ饭
            @DisStr $crlf
     ;
     exit:  mov     al,0                     ; ଠ쭮 襭
            @ExitToDOS                       ; 襭 ணࠬ
     main   ENDP
     ;
     ; ************ ShowDeviceInfo ****************************************
     ; ணࠬ ShowDeviceInfo ⮡ࠦ , 㥬  ES:DI,
     ; ।    ࠩ. ଠ 뢮 ଠ樨
     ;  .
     ;
     ShowDeviceInfo PROC    NEAR
            test    es,[di].attrib,AT_CHR  ; ࠩ ᨬ 
            jnz     is_char                ;    ?
            @DisStr $block                 ;  ( )
            xor     ah,ah
            mov     al,es:[di].dname       ; ⢮ ன
            jmp     short dis_units
     is_char:
            push    ds                     ; ࠭ DS
            push    es                     ; ஢塞 ᥣ
            pop     ds
            lea     si,es:[di].dname       ; SI = ᬥ饭 
            mov     cx,8                   ;  
     show_name:
            lodsb                          ; 뢮   ᨬ
            @DisChr al                     ;    ࠧ
            loop    show_name

                                      - 6-52 -
            pop     ds                     ; ⠭ DS
            @DisStr @space
            @DisStr @char                  ; 뢮 ⨯ ࠩ
            @DisStr @space
            mov     ax,1                   ; 쪮  ன⢮
     ;
     dis_units:
            mov     ch,02                  ; 뢮 ⢮ ன
            call    bin2hex
            @DisStr @space
            mov     ch,04                  ; 뢮 ᫮ 
            mov     ax,es:[di].attrib
            call    bin2hex                ; 뢮 ᫮ ਡ⮢
            @DisStr @space
     ;
            mov     ax,es
            call    bin2hex                ; 뢮 ᥣ 
            @DisChr $colon
            mov     ax,di
            call    bin2hex                ; 뢮 ᬥ饭
            @DisStr @space
     ;
            mov     ax,es:[di].strat
            call    bin2hex                ; 뢮  
            @DisStr @space
     ;
            mov     ax,es:[di].intrp
            call    bin2hex                ; 뢮  
            @DisStr @crlf
     ;
            ret
     ShowDeviceInfo ENDP
     ;
     ; ************  ,   ************************
     ;
     _TEXT  ENDS
            END     main

     ---------------------------------------------------------------------


                           ⨭ 6-7.  DRIVER.INC
     ---------------------------------------------------------------------
     ; ************ DRIVER.INC *******************************************
     ;
     ; Driver.Inc : ন ।  ⠭  ᯮ짮 
     ; ᥬ஢ ࠩ஢ MS-DOS.
     ;
     ; ************  ,    *******
     ;
     ; । ⮢ ᫮ ਡ⮢ ࠩ :
     AT_CHR         EQU     1000000000000000b      ; 쭮 ன⢮
     AT_IOCTL       EQU     0100000000000000b      ; প IOCTL
     AT_BUSY        EQU     0010000000000000b      ; প OTB
     AT_NOIBM       EQU     0010000000000000b      ;  IBM ன⢮
     AT_NET         EQU     0001000000000000b      ; ⥢ ன⢮
     AT_OCRM        EQU     0000100000000000b      ; প OCRM

                                      - 6-53 -
     AT_GIOCTL      EQU     0000000001000000b      ; প GIOCTL
     AT_LOGICL      EQU     0000000001000000b      ; Get/Set Logical Dev
     AT_SPECL       EQU     0000000000010000b      ; 樠쭮 -
     AT_CLOCK       EQU     0000000000001000b      ; ன⢮ ""
     AT_NUL         EQU     0000000000000100b      ; ன⢮ NUL
     AT_STDOUT      EQU     0000000000000010b      ; ⠭ -
     AT_STDIN       EQU     0000000000000001b      ;     뢮
     ;
     ; ।  訡 ࠩ஢ ன :
     WRITE_PROTECT          EQU      0
     UNKNOWN_UNIT           EQU      1
     NOT_READY              EQU      2
     UNKNOWN_UNIT           EQU      3
     CRC_ERROR              EQU      4
     BAD_REQUEST            EQU      5
     SEEK_ERROR             EQU      6
     UNKNOWN_MEDIA          EQU      7
     SECTOR_NOT_FOUND       EQU      8
     OUT_OF_PAPER           EQU      9
     WRITE_FAULT            EQU      0Ah
     READ_FAULT             EQU      0Bh
     GENERAL_FAILURE        EQU      0Ch
     INVALID_DISK_CHANGE    EQU      0Fh
     ;
     ; , 頥  MEDIA CHECK :
     IsChanged      EQU     -1       ; ⥫  
     DontKnow       EQU     0        ;  ⭮ 뫠  
     NotChanged     EQU     1        ; ⥫  
     ;
     ; ************   : DRIVER.INC *****************************

     ---------------------------------------------------------------------


                        ਬ ࠩ 㠫쭮 ᪠

              ⮩ ,  ⨭ 6-10,  ਢ ਬ 쬠
         饭 ࠩ RAM-᪠ (.. ࠩ 㠫쭮 ᪠,
         ࠧ頥  ).  ᬮ  ᢮ ,  ࠩ  100%
         ࠡᯮᮡ    ᯮ짮    MS-DOS  ⥬
         稭  ᨨ 2.0  . ࠩ RAM-᪠,   -
         ⨭ 6-10,  ᯮ 360 K ⥬     樨
         ⠭⭮ ⨤ ᪮.  ᫨  ७ ᯮ짮-
           ࠩ,    ⥬    ࠩ  
         512 K . ᫨       
          㠫   ࠧ஢,       
         ਭ    㬮砭  ࠬ,    ᠭ  ᥪ樨
         ࠩ, 祭  "ᠭ RAM-᪠".
              襭  ࠧ஢ RAM-᪠ -
          ᯮ짮 ࠬ஢  ப.  ᯮ,  
         室    ࠡ稪    INIT  ࠬ  request.bpbtabo 
         request.bpbtabs ᮤঠ  㪠⥫      ப
         ࠩ.  ப   ஢७  稥 ४-
           権,      ᯮ짮    䨣樨
         ࠩ.    ᯮ짮  ⮣ ⮤ 楤 INIT 
         믮 ஢,  ᪮४஢ ࠬ  BPB  ᥣ
          襭 ࠩ.

                                      - 6-54 -
            ᫥ ⮣,  ணࠬ 뫠 ࠡ⠭ ᥬ஬  ।-
         ஬ 痢,  २   RDISK.SYS.   ᮧ 䠩
         CONFIG.SYS (᫨,  筮,     ᮧ)     
          ப :

                DEVICE=RDISK.SYS

             ࢮ   १㧪 ࠩ 㤥 ⠭  ࠩ-
          ᫥饣  浪 ᪮ (⭮  ࠩ  ᪮-
          C:,  ᫨    ⪮ ᪠).  祣   -
          ࠩ RDISK  ॡ.
              RAM-     㭪権 MS-DOS 
         ணࠬ,   ᪫祭  DISKCOPY    DISKCOMP.    
         ணࠬ    ।  ⨯  ᪮      ࠡ 
         RAM-᪠.
            ࠩ RDISK,  ਢ  ⨭ 6-10,  ᮤন ⮩
         ,    ᯮ짮  ⫠   ᫥
         ࠩ஢.  ᠭ  ᯮ짮 㭪権 /뢮 ஢-
          BIOS,  ਢ  ⨭ 6-8.   ⮣, ⮡ ⫠
          ᯮ   襭 ࠩ,  RDISK 砥 
         ᥡ 室 ⥪ 䠩 BIOSIO.ASM (.⨭  6-9).    
          楤 筮  ।஬ 痢  -
          ணࠬ,  ᯮ짮  ࠩ ன ।⠢-
          ஡.
            ⫠    ⢮ ⥬ 祭   䠩
         RDISK  DEBUG EQU 1 ,  ᯮ짮 Microsoft MASM
         ᨨ 4   ,  㪠    ப  樨
         /DDEBUG.
             ६ 믮 ⫠  ᯮ   ࠩ-
           ⢥   ⠡ message_table.  ⠬ ⠡-
          message_table    ப,  ।⠢  
         ,  室      ,  ।饩 ⠡
         message_table. ⥪⮢ ப ⮡ࠦ   -
         ஧ᨬ  楤  _biosprt.    ࠩ  RDISK 楤
         _biosprt ᯮ  EGA  梥 ஬,  -
           ⫨ ⫠ ⥪   ᮮ饭 MS-DOS.


                           ⨭ 6-8.  BIOSIO.INC
     ----------------------------------------------------------------------
     ; ************ BIOSIO.INC ********************************************
     ;
     ; BiosIO.Inc ᮤন ⠭  ᯮ짮 楤 BIOS ஢
     ; 室  䠩 STDLIB.LIB
     ;
     ; ப @Video  ᯮ짮  楤ࠬ
     ;
     @Video MACRO   function
            mov     ah,function
            int     10h
            ENDM
     ;
     ; ************ BIOS I/O Equates **************************************
     ;
     ;  । ন ᯮ짮 /뢮 ஢ BIOS.
     ;
     ; । 㭪権 ࢨ BIOS (INT 10H)

                                      - 6-55 -
     SET_CURSOR_POS EQU 02H ;; BH = ࠭, DH = ப, DL = 
     GET_CURSOR_POS EQU 03H ;; BH = ࠭; ப => DH,  => DL
     SET_PAGE       EQU 05H ;; AL => ࠭
     SCROLL_UP      EQU 06H ;; AL = #ப, BH => ਡ, C(x) = 
     SCROLL_DOWN    EQU 07H ;;    , D(x) =  ࠢ,
                            ;;    (x)H = ப, (x)L = 
     READ_CHR_ATR   EQU 08H ;; BH = ࠭; . => AH, ᨬ. => AL
     WRITE_CHR_ATR  EQU 09H ;; BH = ࠭, CX = 1, AL = ᨬ., BL = .
     WRITE_CHAR     EQU 0AH ;; BH = ࠭, CX = 1, AL = ᨬ.,  .
     WRITE_TEXT     EQU 0EH ;; BH = ࠭, AL = ᨬ
     GET_MODE       EQU 0FH ;; ० => AL, # => AH, ࠭ => BH
     ;
     ; ਡ ᨬ  ᯮ짮  EGA
     BLINK          EQU     10000000b
     BRIGHT         EQU     00001000b
     BLACK_F        EQU     00h
     BLUE_F         EQU     01h
     GREEN_F        EQU     02h
     CYAN_F         EQU     03h
     RED_F          EQU     04h
     MAGENTA_F      EQU     05h
     YELLOW_F       EQU     06h
     WHITE_F        EQU     07h
     BLACK_B        EQU     10h
     BLUE_B         EQU     10h
     GREEN_B        EQU     20h
     CYAN_B         EQU     30h
     RED_B          EQU     40h
     MAGENTA_B      EQU     50h
     YELLOW_B       EQU     60h
     WHITE_B        EQU     70h
     ;
     ; ************   BIOSIO.INC ********************************


                           ⨭ 6-9.  BIOSIO.ASM
     ----------------------------------------------------------------------
     PAGE   60,132
     PUBLIC _biosprt
     ; ************ BIOSIO.ASM ********************************************
     ; BIOSIO: ন 楤  믮 /뢮 
     ; ஢ BIOS, ᯮ ⠭ 맮 BIOS.  楤
     ; ।祭  楫 ⫠.
     ;
     IFNDEF DEBUG           ; ᫨   DEBUG,    
                            ;  LIBRARY,    
                            ; ᮡ⢥ ।
     ; ************ INCLUDES **********************************************
     ;
     INCLUD biosio.inc       ; BIOS I/O difinition
     ;
     ; ************ DGROUP (DATA) COMPONENT SEGMENTS **********************
     _DATA   SEGMENT BYTE PUBLIC 'DATA'
     _DATA   ENDS
     ;
     DGROUP  GROUP   _DATA
     ;

                                      - 6-56 -
     ;************* PROGRAM CODE STARTS HERE ******************************
     ;
     _TEXT   SEGMENT BYTE PUBLIC 'CODE'
             ASSUME  cs:_TEXT, ds:DGROUP, es:DGROUP, ss:DGROUP
     ENDIF
     ;
     ;  , 뢠饩 ﭨ ⥪  _BIODPRT
     bpframe STRUC
                    dw      ?                ;  BP
                    dw      ?                ;  
             p1     dw      ?                ; ࠬ #1
             p2     dw      ?                ; ࠬ #2
             p3     dw      ?                ; ࠬ #3
             p4     dw      ?                ; ࠬ #4
     bpframe ENDS
     prtbase EQU    [bp]
     ;
     ; _BIOSPRT
     ;  ணࠬ 믮 뢮  ࠭  ஢ BIOS 
     ; ᯮ  ⫠ ࠩ. ணࠬ ᯮ
     ; ० 03h : 80*25 梥⭮ ⥪
     ;
     ;    ᨭ⠪ 맮 : biosprt(string,color)
     ;
     _biosprt        PROC    NEAR
             push    bp
             mov     bp,sp
             push    si
             push    cx
             push    bx
     ;
             @Video  GET_MODE                 ;   ⥪.࠭
             mov     si,word prt [prtbase.p1] ;  ப
             mov     bl,byte prt [prtbase.p2] ; ਡ
             mov     cx,1
     ;
     biosprtloop:
             lodsb                           ; ६ । ᨬ
             or      al,al                   ; ப 蠥 㫥
             jz      biosprtdone
             cmp     al,'$'                  ;  蠥 "$"
             jz      biosprtdone
             push    ax
             mov     al,020h
             @Video  WRITE_CHR_ATR           ; ஡  ਡ⮬
             pop     ax
             @Video  WRITE_TEXT              ;   ० TTY
             jmp     biosprtloop             ; 騩 ᨬ
     ;
     biosprtdone
             pop     bx
             pop     cx
             pop     si
             pop     bp
             ret
     _boisprt        ENDP
     ;

                                      - 6-57 -
     IFNDEF  DEBUG                           ; ᫨  祭  
     _TEXT   ENDS                            ; DEBUG,  ॡ 
     ENDIF                                   ; ᮡ⢥ ENDS
     ;
     ; ************   BIOSIO.ASM ********************************
     ;       END            ;  ᯮ짮  ⥪, 㤠 ";"

     ----------------------------------------------------------------------

                  ⨭ 6-10. 室 ⥪ ࠩ RAM-᪠
     ----------------------------------------------------------------------
     PAGE 60,132
     ; ************ RDISK.ASM : MS-DOS  RAM- ******************
     ;
     ;  䠩 ᮤন 室 ⥪ ⮣ MS-DOS ࠩ RAM-᪠
     ; 㫨饣 360K 䫮-.
     ;
     ;  ⮬ ਬ  ᭮ ਭ樯 ஥ ࠩ
     ; ன,    ⮤,   ᯮ짮 
     ; ⫠ ࠩ஢.  ⠭ ⮣ ࠩ   䠩
     ; CONFIG.SYS ப "DEVICE=RDISK.SYS"
     ;
     ; ============     ====================
     ;
     INCLUDE driver.inc                     ; ⠭  MS-DOS ࠩ
     IFDEF   DEBUG
     INCLUDE biosio.inc                     ; ।  ⫠
     ENDIF
     ;
     ; ============  =============================================
     ;
     ; ࠭祭,뢠 ᨥ MS-DOS  ᨬ  
     ;
     CMD_PRE_30               EQU      00Ch  ;   MS-DOS ᨨ 3.00
     CMD_PRE_32               EQU      00Fh  ;   MS-DOS ᨨ 3.20
     CMD_32                   EQU      018h  ;  稭  ᨨ 3.20
     ;
     IFDEF           DEBUG
     CR                       EQU      0Ah   ; ᯮ  ⫠
     LF                       EQU      0Dh   ;   ᮮ饭
     ENDIF
     ;
     PAGE
     ;
     ; ============   ======================================
     ;
     request         EQU      es:[di]        ; 㪠⥫   
     ;
     ;   
     ;
     reqhdr          STRUC
                     rlength  db      ?              ; ࠧ  
                     unit     db      ?              ;  ன⢠
                     command  db      ?              ;  
                     status   dw      ?              ; 頥 
                              db      8 DUP (?)      ; १ࢨ஢
     reghdr          ENDS

                                      - 6-58 -
     ;
     ;      INIT
     ;
     inithdr         STRUC
                              db      (type reqhdr) DUP (?)
                     units    db      ?              ; ⢮ ன
                     endadro  dw      ?              ; ᬥ饭  ᥣ
                     endadrs  dw      ?              ;    襭
                     bpbtabo  dw      ?              ; ᬥ饭  ᥣ
                     bpbtabs  dw      ?              ;   ⠡ BPB
                     devnum   db      ?              ;  ன⢠
     inithdr         ENDS
     ;
     ;      MEDIA CHECK
     ;
     mchkhdr         STRUC
                              db       (type reqhdr) DUP (?)
                     mbd      db      ?             ; ⥫ ⥫
                     chande   dw      ?             ;  
                     volume   dd      ?             ; 㪠⥫   ⮬
     mchkhdr         ENDS
     ;
     ;      BUILD BPB
     ;
     bpbhdr          STRUC
                              db       (type reqhdr) DUP (?)
                              db      ?              ; ⥫ ⥫
                              dd      ?              ; 㪠⥫  FAT
                     bpbptro  dw      ?              ; ᬥ饭 BPB
                     bpbptrs  dw      ?              ; ᥣ BPB
     bpbhdr          ENDS
     ;
     ;      ⥭/
     ;
     iohdr           STRUC
                              db       (type reqhdr) DUP(?)
                              db      ?             ; ⥫ ⥫
                     bufprt   dd      ?             ;  
                     count    dw      ?             ; - /ᥪ஢
                     start    dw      ?             ; # 砫쭮 ᥪ
                     nuvol    dd      ?             ;  .  ⮬
     iohdr           ENDS
     ;
     ;   ࠬ஢ BIOS (BPB)
     ;
     bpbstrc         STRUC
                     bps      dw      ?      ; ⢮ ⮢  ᥪ
                     spau     db      ?      ; - ᥪ஢  
                     nrs      dw      ?      ; - १ࢨ. ᥪ஢
                     nft      db      ?      ; ⢮  FAT
                     nde      dw      ?      ; - ⮢ ४
                     nls      dw      ?      ; - ᪨ ᥪ஢
                     md       db      ?      ;  ⥫ ⥫
                     nfs      dw      ?      ; ࠧ FAT  ᥪ
     bpbstrc         ENDS
     ;

                                      - 6-59 -
     PAGE
     ;
     ; =============    =================================
     ;
     _TEXT           SEGMENT  BYTE    PUBLIC 'CODE'
                     ASSUME   CS:_TEXT, DS:_TEXT, ES:NOTHING
                     ORG      0
     ORIGIN          EQU      $
     ;
     ; =============   ===================================
     ;
                     dw       -1,-1          ; 㪠⥫  ᫥. ࠩ
                     dw       AT_IOCTL OR AT_OCRM OR AT_NET
                     dw       offset STRATEGRY       ; ᬥ饭 
                     dw       offset        ; ᬥ饭 
                     db       1,'CDEVICE'            ; - ன/
     ;
     ; =============     ==================
     ;
     JUMPTAB        LABEL   WORD
                    dw      offset INIT             ; 0 - 樠
                    dw      offset MEDIA_CHECK      ; 1 - ஢ઠ ⥫
                    dw      offset BUILD_BPB        ; 2 - ந BPB
                    dw      offset IOCTL_INPUT      ; 3 - IOCTL 
                    dw      offset READ             ; 4 -   -
                    dw      offset READ_NOWAIT      ; 5 - ࠧ. 
                    dw      offset INPUT_STATUS     ; 6 -  
                    dw      offset INPUT_FLUSH      ; 7 -  
                    dw      offset WRITE            ; 8 - 뢮  -
                    dw      offset WRITE_VERIFY     ; 9 - 뢮  ஢મ
                    dw      offset OUTPUT_STATUS    ; A - 뢮 
                    dw      offset OUTPUT_FLUSH     ; B -  뢮
                    dw      offset IOCTL_OUTPUT     ; C - 뢮 IOCTL
                    dw      offset DEVICE_OPEN      ; D -  -
                    dw      offset DEVICE_CLOSE     ; E -  -
                    dw      offset REMOVABLE        ; F - ⥫ ᬥ?
                    dw      offset NO_COMMAND       ; 10
                    dw      offset NO_COMMAND       ; 11
                    dw      offset NO_COMMAND       ; 12
                    dw      offset GENERIC_IOCTL    ; 13 - Generic IOCTL
                    dw      offset NO_COMMAND       ; 14
                    dw      offset NO_COMMAND       ; 15
                    dw      offset NO_COMMAND       ; 16
                    dw      offset GET_LOGICAL      ; 17 - /⠭-
                    dw      offset SET_LOGICAL      ; 18 -  .-
     ;
     ; ============    ===============================
     ;
     reg_ptr        dd       ?               ;   
     max_cmd        db       CMD_PRE_30      ; ᨬ쭮 ⨬ 
     ;                                       ;   
     save_ss        dw       ?               ; 祭 SS  室
     save_sp        dw       ?               ; 祭 SP  室
     ;

                                      - 6-60 -
     PAGE
     ;
     ; ============   ====================================
     ;
     STRATEGY                PROC    FAR
                    mov     cs:word ptr [reg_ptr],bx
                    mov     cs:word ptr [reg_ptr+2],es
                    ret
     strategy               ENDP
     ;
     ; ============   ===================================
     ;
     INTERRUPT               PROC     FAR
                    push    ax               ; ࠭  ࠡ稥
                    push    cx               ;   ॣ
                    push    dx
                    push    bx
                    push    bp
                    push    si
                    push    di
                    push    ds
                    push    es
     ;
                    push    cs               ; ।  ᥣ
                    pop     ds               ;   
     ;
                    mov     word ptr save_ss,ss      ; ࠭ 室
                    mov     word ptr save_sp,sp      ; 祭 SS  SP
     ;
                    mov     bx,cs                    ; ⠭ 
                    mov     ax,offset local_stack - 2        ; ⥪
                    mov     ss,bx
                    mov     sp,ax
     ;
                    les     di,[req_ptr]             ;   
                    mov     bl,request.command       ;   
     ;
     ; ⠭ ࠭  訡  砩 ᫨  ୠ
     ;
                    mov     ax,(ST_ERROR OR UNKNOWN_COMMAND)
                    cmp     bl,[max_cmd]     ;  ন ?
                    ja      exit             ;  - ⢥࣠ 
     ;
     ; 뤠 㪠   믮 ᮮ⢥饬 ࠡ稪.
     ;  ࠡ稪 砥 ࠢ  CS  DS ⠭묨 
     ; ᥣ ࠩ  ES:DI 㪠뢠饬   .  
     ; ࠡ稪   ॣ AX.
     ;
                    xor     bh,bh            ; BX -   ⠡
                    shl     bx,1             ;   
     IFDEF          DEBUG
                    call    print_command    ; 뤠  ࠡ뢠
     ENDIF                                   ;   
                    call    word ptr jumptab[bx]     ; 뢠 ࠡ稪
     ;
     ; 諥   ॣ AX  ᫮ ﭨ  
     ;
     exit:          push    cs               ; ⠭ 쭮

                                      - 6-61 -
                    pop     ds               ;   ᥣ 
     ;
                    les     di,[req_ptr]     ; 稬   
                    or      ax,ST_DONE       ; ⠭  DONE
                    mov     request.status,ax        ; ࠭ 
     ;
                    mov     ss,word ptr save_ss      ; ⠭ 祭
                    mov     sp,word ptr save_sp      ;   ॣ஢ SS:SP
     ;
                    pop     es               ; ⠭ ᮤন
                    pop     ds               ;   ॣ஢
                    pop     di
                    pop     si
                    pop     bp
                    pop     bx
                    pop     dx
                    pop     cx
                    pop     ax
                    ret
     interrupt      ENDP
     ;
     PAGE
     ;
     ; ============   ====================================
     ;
     NO_COMAND      PROC    NEAR     ; ন 
            ret                      ;   訡
     NO_COMMAND     ENDP
     ;
     MEDIA_CHECK    PROC    NEAR     ; 1 - ஢ઠ ⥫
            mov     request.change,NotChanged
            xor     ax,ax
            ret
     MEDIA_CHECK    ENDP
     ;
     BUILD_BPB      PROC    NEAR     ; 2 - ந BPB
            mov     request.bpbptro,offset bpb
            mov     request.bpbptrs,cs
            xor     ax,ax
            ret
     BUILD_BPB      ENDP
     ;
     IOCTL_INPUT    PROC    NEAR     ; 3 -  IOCTL
            xor     ax,ax
            ret
     IOCTL_INPUT    ENDP
     ;
     READ           PROC    NEAR     ; 4 -   ன⢠
            call    verify           ; ஢ઠ  ⠭ ࠬ஢
            jc      rd_err           ; 室  訡
            les     di,request.bufptr   ; 뢠  
            rep     movsw            ; ।
            xor     ax,ax            ;  訡
     rd_err:
            ret
     READ           ENDP
     ;

                                      - 6-62 -
     READ_NOWAIT    PROC    NEAR     ; 5 - ࠧ騩 
            xor     ax,ax            ;      
            ret
     READ_NOWAIT    ENDP
     ;
     INPUT_STATUS   PROC    NEAR     ; 6 -  
            xor     ax,ax
            ret
     INPUT_STATUS   ENDP
     ;
     INPUT_FLUSH    PROC    NEAR     ; 7 -  室 ।
            xor     ax,ax
            ret
     INPUT_FLUSH    ENDP
     ;
     WRITE          PROC    NEAR     ; 8 - 뢮  ன⢮
            call    verify           ; ஢ઠ  ⠭ ࠬ஢
            jc      wr_err           ; 室  訡
            push    ds               ; ࠭ ᥣ "ᥪ"
            lds     si,request.bufptr   ; 뢠  
            pop     es               ;  
            xor     di,di            ;  㫥 ᬥ饭
            rep     movsw            ; ।
            xor     ax,ax            ;  訡
     wr_err:
            ret
     WRITE          ENDP
     ;
     WRITE_VERIFY   PROC    NEAR     ; 9 - 뢮  ஢મ
            call    write
            ret
     WRITE_VERIFY   ENDP
     ;
     OUTPUT_STATUS  PROC    NEAR     ; A - 뢮 
            xor     ax,ax
            ret
     OUTPUT_STATUS  ENDP
     ;
     OUTPUT_FLUSH   PROC    NEAR     ; B -  室 ।
            xor     ax,ax
            ret
     OUTPUT_FLUSH   ENDP
     ;
     IOCTL_OUTPUT   PROC    NEAR     ; C - 뢮 IOCTL
            xor     ax,ax
            ret
     IOCTL_OUTPUT
     ;
     DEVICE_OPEN    PROC    NEAR     ; D -  ன⢮
            xor     ax,ax
            ret
     DEVICE_OPEN    ENDP
     ;
     DEVICE_CLOSE   PROC    NEAR     ; E -  ன⢮
            xor     ax,ax
            ret
     DEVICE_CLOSE   ENDP

                                      - 6-63 -
     ;
     REMOVABLE      PROC    NEAR     ; F - ⥫ ᬥ ?
            mov     ax,ST_BUSY       ;  !
            ret
     REMOVABLE      ENDP
     ;
     GENERIC_IOCTL  PROC    NEAR     ; 13 - 㯯 IOCTL 
            xor     ax,ax
            ret
     GENERIC_IOCTL  ENDP
     ;
     GET_LOGICAL    PROC    NEAR     ; 17 -   ᪮
            xor     ax,ax            ;      ᪠
            ret
     GET_LOGICAL    ENDP
     ;
     SET_LOGICAL    PROC    NEAR     ; 18 - ⠭  ᪮
            xor     ax,ax            ;      ᪠
            ret
     SET_LOGICAL    ENDP
     ;
     PAGE
     ; ------------ ணࠬ ࠡ⪨ ᮢ -----------------------
     ;  ணࠬ 뢠  ࠡ⪨ ࠬ஢  
     ;  /뢮.
     ;  室 :
     ;    ES:DI - ᮤন   
     ; ⢨ :
     ;    ஢ઠ ࠬ " ᥪ"  ⨬.
     ;    ८ࠧ ⮣ ࠬ  "ᥣ:ᬥ饭".
     ;    ஢ 稪  ।饭 "४".
     ;  室 :
     ;    DS:SI - ᮤন  "ᥪ"  RAM-᪥
     ;    ES:DI - ᮤন   
     ;    CX - ᮤন ⢮ । ᫮.
     ;
     verify PROC    NEAR
     ; ஢ਬ,  砫쭮  筮 ᥪ஢   ।
     ;  0  N.
            mov     cx,request.start         ; ࠢ  砫쭮
            cmp     cx,bpb.nls               ;   ᥪ  ⢮
            jae     out_of_range             ;   ᪨ ᥪ஢
            add     cx,request.count         ;   筮
            dec     cx                       ;   ᥪ  ⮦ ࠢ
            cmp     cx,bpb.nls               ; ᫨  ᥪ஢
            jb      in_range                 ;   ଠ  த
     ;  ᥪ  ᮤঠ  ᪥
     out_of_range:
            mov     ax,ST_ERROR OR SECTOR_NOT_FOUND
            mov     request.count,0          ; 祣  뫮 ।
            stc                              ; 頥  訡
            ret
     ; ᫨ ᥣ  砫쭮 ᥪ
     in_range:
            mov     ax,bpb.bps               ; ⢮   ᥪ
            mov     cl,4                     ; ࠧ  16  祭
            shr     ax,cl                    ;   ࠧ  ࠣ

                                      - 6-64 -
            mul     request.start            ; ᬥ饭 ࠣ ⭮-
                                             ;   ⥫쭮 砫 ᪠
            add     ax,RPARA                 ; ᬥ饭 ࠣ ⭮-
            mov     dx,cs                    ;   ⥫쭮 CS
            add     ax,dx                    ; ᮫⭮ ᬥ. ࠣ
            mov     si,ax                    ; ࠭ ᥣ  SI
     ; ᫨  ஢ਬ 稪 । 
            mov     ax,bpb.bps               ; ࠧ ᥪ  
            mul     request.count            ; 稪 ।  
            cmp     dx,0                     ; ஢ਬ  ४⭮
            jne     out_of_range
     ; ஢塞 稪  AX  ।饭 ४
            mov     cx,word ptr request.bufptr
            cmp     ax,0                     ; ᬥ饭 = 0
            je      set_size
            neg     cx                       ; ⮪ = 64K - ᬥ饭
            cmp     cx,ax                    ;   
            jae     set_size                 ; ᫨ ⮪  稪,
            mov     ax,cx                    ;    । ⮫쪮 ⮪
     ; ⠭ ⢮ । ᥪ஢  稪 ।
     set_size:
            mov     cx,ax                    ; 稪 ।  
            shr     cx,1                     ; ८ࠧ㥬  稪 ᫮
            div     bpb.bps                  ; (DX  0) - ᥪ஢
            mov     request.count,ax         ; ࠭ 稪 ।
     ; 㧨  DS:SI    
            mov     ds,si
            xor     si,si
     ; ⠭ ࠢ ।  ୥  訡
            cld
            clc
            ret
     verify ENDP
     ;
     IFDEF  DEBUG
     INCLUDE        biosio.asm
     PAGE
     ;
     ; ************      ******************************
     ;
     ; ⫠ ᮮ饭
     ;
     NO_COMMAND_msg    db   'NO COMMAND',CR,LF,'$'
     INIT_msg          db   'INITialization',CR,LF,'$'
     MEDIA_CHECK_msg   db   'MEDIA Check',CR,LF,'$'
     BUILD_BPB_msg     db   'Build BIOS Parameter Block',CR,LF,'$'
     IOCTL_INPUT_msg   db   'IO Control Input',CR,LF,'$'
     READ_msg          db   'Input from Device',CR,LF,'$'
     READ_NOWAIT_msg   db   'Nondestructive Input no-wait',CR,LF,'$'
     INPUT_STATUS_msg  db   'Input Status',CR,LF,'$'
     INPUT_FLUSH_msg   db   'Flush Input Queue',CR,LF,'$'
     WRITE_msg         db   'Output to Device',CR,LF,'$'
     WRITE_VERIFY_msg  db   'Output with Verify',CR,LF,'$'
     OUTPUT_STATUS_msg db   'Output Status',CR,LF,'$'
     OUTPUT_FLUSH_msg  db   'Flush Output Queue',CR,LF,'$'
     IOCTL_OUTPUT_msg  db   'IO Control Output',CR,LF,'$'
     DEVICE_OPEN_msg   db   'Open a Device',CR,LF,'$'

                                      - 6-65 -
     DEVICE_CLOSE_msg  db   'Close a Device',CR,LF,'$'
     REMOVABLE_msg     db   'Is Media Removable',CR,LF,'$'
     GENERIC_IOCTL_msg db   'Generic IOCTL Request',CR,LF,'$'
     GET_LOGICAL_msg   db   'Get Logical Device',CR,LF,'$'
     SET_LOGICAL_msg   db   'Set Logical Device',CR,LF,'$'
     ;
     PAGE
     ;
     ; =============     =================
     ;
     message_table  LABEL   WORD
            dw      offset INIT_msg          ; 01 - 樠
            dw      offset MEDIA_CHECK_msg   ; 02 - ஢ઠ ⥫
            dw      offset BUILD_BPB_msg     ; 03 - ந BPB
            dw      offset IOCTL_INPUT_msg   ; 04 -  IOCTL
            dw      offset READ_msg          ; 05 -   ன⢠
            dw      offset READ_NOWAIT_msg   ; 06 - ࠧ.   .
            dw      offset INPUT_STATUS_msg  ; 07 -  
            dw      offset INPUT_FLUSH_msg   ; 08 -  室 ।
            dw      offset WRITE_msg         ; 09 - 뢮  ன⢮
            dw      offset WRITE_VERIFY_msg  ; 10 - 뢮  ஢મ
            dw      offset OUTPUT_STATUS_msg ; 11 - 뢮 
            dw      offset OUTPUT_FLUSH_msg  ; 12 -  室 ।
            dw      offset IOCTL_OUTPUT_msg  ; 13 - 뢮 IOCTL
            dw      offset DEVICE_OPEN_msg   ; 14 -  ன⢮
            dw      offset DEVICE_CLOSE_msg  ; 15 -  ன⢮
            dw      offset REMOVABLE_msg     ; 16 - ⥫ ᬥ ?
            dw      offset NO_COMMAND_msg    ; 17 -
            dw      offset NO_COMMAND_msg    ; 18 -
            dw      offset NO_COMMAND_msg    ; 19 -
            dw      offset GENERIC_IOCTL_msg ; 20 - 㯯 IOCTL 
            dw      offset NO_COMMAND_msg    ; 21 -
            dw      offset NO_COMMAND_msg    ; 22 -
            dw      offset NO_COMMAND_msg    ; 23 -
            dw      offset GET_LOGICAL_msg   ; 24 -   ᪠
            dw      offset SET_LOGICAL_msg   ; 25 - ⠭  ᪠
     ;
     PAGE
     ; PRINT_COMMAND
     ;
     ;  楤 뢠 㭪 BIOS   (_biosprt), ।
     ;   ப, ᮤঠ饩  ⮫쪮  맢 . 
     ; 맮 ⮩ 楤 㤢   ।  ॣ BX.
     ;  ᯮ㥬 ॣ ࠭.
     ;
     print_command  PROC    NEAR
            push    ax                       ; ࠭ ᮤন ॣ. AX
            mov     ax, BLUE_F OR BRIGHT OR BLACK_B  ; ⠭ 梥
            push    ax
            mov     ax,word ptr message_table[bx]    ;  ப
            push    ax
            call    _biosprt                 ; 뢠 楤 BIOS
            add     sp,4                     ; 頥 ⥪  ࠬ஢
            pop     ax                       ; ⠭ AX  室
            ret
     print_command  ENDP
     ENDIF

                                      - 6-66 -
     ;
     PAGE
     ;
     ; *******        ********
     ;
            db      32 DUP ('stack   ')      ; ७ ⥪ 㡨
     local_stack    EQU     $                ;   256 
     ;
     bpb_tab        dw      offset bpb       ; 㪠⥫  BPB
     ;
     LAST_USED      EQU     $                ;  襭
     ;
     ; *******  RAM-,    **********
     ;
     ; ࠬ  5-1/4" ஭  ⭮ ᪠  
     ; ᥪࠬ  ஦.
     ;
     MTYPE   EQU    0FDh             ;  ⥫ ⥫
     TRACKS  EQU    40               ; 40 ஦
     SECTORS EQU    9                ; 9 ᥪ஢  ஦
     DSIZE   EQU    512              ; 512   ᥪ
     SIDES   EQU    2                ; 2 ஭  ᪥
     ;
     FSECS   EQU    2                ; ⢮ ᥪ஢  FAT
     DIREN   EQU    112              ; ⢮ ⮢ ४
     DSECS   EQU    7                ; 7 ᥪ஢  ४ਨ
     CLSIZ   EQU    2                ; 2 ᥪ  
     ;
     STOTAL  EQU    TRACKS*SECTORS*SIDES     ; ᥣ ᥪ஢
     PTOTAL  EQU    (DSIZE/16)*STOTAL        ; ᥣ ࠣ䮢
     ;
     ; ************    RAM- ***********************
     ;
     ; RAM- .. ஢  ࠭ ࠣ
     ;
            IF      ($-ORIGIN) mod 16
            ORG     ($-ORIGIN) + 16 - (($-ORIGIN) mod 16)
            ENDIF
     RDISK  LABEL   BYTE             ; 砫 RAM-᪠
     RPARA  EQU     ($-ORIGIN)/16    ; ࠧ   ࠣ
     ;
     ; ------------  ࠬ஢ BIOS ----------------------------------
     ;
            jmp     short boot       ; ⪨ JMP (2 )
            nop                      ; ॡ  boot_record
            db      'IBM  3.1'       ; 8    
     ;
     bpb    bpbstrc <DSIZE,CLSIZ,1,2,DIREN,STOTAL,MTYPE,FSECS>
            dw      SECTORS          ; ⢮ ᥪ஢  ஦
            dw      SIDES            ; ⢮  ⥭/
            dw      0                ; ⢮  ᥪ஢
     boot:
            db      (DSIZE-30) DUP (?)       ; ⮪ boot_sector
     ;
     ; ------------  ࠧ饭 䠩 (FAT) -----------------------
     ;                                       ;    FAT
     FAT_1  db      MTYPE,0FFh,0FFh          ; 㫥 ⮪ FAT

                                      - 6-67 -
            db      (DSIZE-3) DUP (0)
            db      ((FSECS-1) * DSIZE) DUP (0)
     FAT_2  db      MTYPE,0FFh,0FFh          ;    FAT
            db      (DSIZE-3) DUP (0)        ; 㫥 ⮪ FAT
            db      ((FSECS-1) * DSIZE) DUP (0)
     ;
     ; ------------  ४ ------------------------------------
     ;
     DIREC  db      'RAM_DISK   '            ;  ⮬ (11 )
            db      08h                      ; VID
            db      10 DUP (?)               ; १ࢨ஢
            dw      0600h                    ; ६ 12:00:00 ()
            dw      021h                     ;  1 ﭢ 1980 
            dw      0                        ; 砫  0
            dd      0                        ; ࠧ 䠩 0
            db      (DSIZE-32) DUP (0)       ; 㫥 ⮪ ४
            db      ((DSECS-1) * DSIZE) DUP (0)
     BUFFER LABEL   BYTE                     ; 砫  
     ;
     ; ************   *******************************
     ;
     INCLUDE        stdmac.inc
     ;
     ; ============   樠樨 ==========================
     ;
     $signon        db      'RAM DISK Driver Version 1.00 Installed: Drive'
     $desig         db      'A'
     $crlf          db      0Dh,0Ah,'$'
     ;
     ; ============ 砫 楤 樠樨 ========================
     ;
     INIT   PROC    NEAR             ; 00 - 樠
     ;
     ; ⠭  襭, ⢮ ன  㪠⥫ 
     ; ⠡ BPB
     ;
            mov     request.endadro,0        ;   ࠩ
            mov     request.endadrs,cs
            add     request.endadrs,(RPARA+PTOTAL)   ; ᫥ ࠣ
            mov     request.units,1
            mov     request.bpbtabo,offset bpb_tab
            mov     request.bpbtabs,cs
            mov     al,$desig                ; ᪮४㥬  ᪠
            add     al,request.devnum
            mov     $desig,al
     ;
     ; 뢮  ࠭ 䨪樮 ப
            @DisStr $signon
     ;
     ; ᪮४㥬 祭 "max_cmd" 室  ᨨ MS-DOS
            @GetDOSVersion                   ; 稬  ᨨ MS-DOS
            cmp     al,3                     ; MS-DOS ᨨ 3.00   ?
            jb      init_done             ;  - ४頥 樠
            mov     [max_cmd],CMD_PRE_32     ;   MS-DOS 3.00
            cmp     ah,2                     ; MS-DOS ᨨ 3.20   ?
            jb      init_done             ;  - ४頥 樠
            mov     [max_cmd],CMD_32         ;   MS-DOS 3.20

                                      - 6-68 -
     ;
     init_done:
            xor     ax,ax                    ;  ஡ !
            ret
     INIT   ENDP
     ;
     ; ************  .   ***************************
     ;
     _TEXT  ENDS
            END

     ---------------------------------------------------------------------

                                    祭

              ⮢   ⠭ ᢮ ᮡ⢥ ࠩ-
           ன.  㪮  訬  砭ﬨ  "MS-DOS
         Programmers Reference Manual"   - 孨-
         ᪨ ᮢ.
                                      ͻ
                                         뢮   Ŀ
                                       ணࠬ  
                                      ͼ 
                                        ĺ
                         ͻ
                                                             
                  vͻ    vͻ    vͻ
                   㠫 Ŀ   㠫 Ŀ   㠫 Ŀ
                   ᯫ #0      ᯫ #1      ᯫ #2   
                  ͼ   ͼ   ͼ 
                    ĺ    ĺ    ĺ
                         ><ͼ
                                            
                                      vͻ
                                          Ŀ
                                        ᯫ   
                                      ͼ 
                                        

                     㭮 6-8. ࠩ 㠫 ࠭

            묨 ࠩࠬ 뫨  ,  ਬ,  ࠩ  筮
         ਭ,  ন騩 ᪨  (⠪  "-
          ")  ८ࠧ騩   ॡ㥬  ਭ஬  ଠ,
          ࠩ ନ, ন騩 㠫 ࠭ (..
         6-8).  ࠩ ନ   ᪮쪮 ஢  -
         , ࠭  ࠭ ଠ樨. 뫠  ࠩ-
           IOCTL-,   㪠 ࠩ  㠫 -
         ࠭         㠫 ࠭  
         ⮡ࠦ  ॠ쭮 ࠭.  ᫨    ᯥ譮  ᠫ  ⠪
         ࠩ,      騩 ࠩ ᮫.
             ᮪ ,    뫮  ॠ   ࠩ,
         ࠪ᪨ ᪮祭.  ⭮,    㦥  ᪮쪮
         ᢮,    ⥫  ॠ. ᫨   墠⠥ ᯮ-
         ⢨    ௥        ⮬,  ⠪
          ৠ!
