



                        III.   AH


               11.    AH 


              ᭮ ਭ樯 ⠭ 䠩
               楤 ⠭
              ⠭ ࠧ襭 䠩   ⨫
              CHKDSK  RECOVER
              ⠭  䠩
              祭


              ᫨  㦥 ஥ ६ ࠡ⠫  樮 -
           MS-DOS,  ,  ⭮,   砩   
         訡  䠩,     쭥襬  .
           ERASE  (  DEL)  樮 ⥬ MS-DOS 
          ᯮ㥬  魮,   ᢮ த -  ࠧ
         . ⥫쭠 ᨫ, 筮, ॡ ⮩  
         믮  ᢮ 㭪権,  ᫨   ᯥ筮, 
          ⠭ 㡨⥫쭮, 祣    .
              ⢥ ।ᬮ७    砩  㤠
         䠩   ERASE  DEL   ࠭ ⮣, 
          ᮡࠥ 㤠  䠩  ᪥    㪠뢠  
         ࠭   "erase *.*". 쪮  ⮬ 砥  ࠭ -
            ⮬,  ⢨⥫쭮    믮  ⠪
         . ᫨  ⢥ ⢥   ᨬ "n" (), -
           㤥 ४饭.    ,   -
           㪠  㤠  ࠭ ⤥ 䠩-
             㯯  䠩,    ⮩       㦨
         ᠬ஫:  ᤥ  ०, 祬   "Return"
         ( "Enter"),  ⥫쭮  ࠧ ஢ ࠭  -
           㤠 䠩.  ⮣ (     ⥯-
          襩 㢥७  ࠢ쭮 㪠  䠩    䠩,
           㤠)  । 㤠  䠩   -
         ,   㤠  ᫥.  ,     -
         ᮢ蠥 訡! ᪮  ஥ ⠪,  -
          稭 訬 ,    㤠  䠩  㤥
         믮    ᫥       "Return" (
         "Enter")    ᫥⥫쭮.
                   ⠪  믮饩  ⥪騩 
         ணࠬ.  ⮢ ।  㣨 ணࠬ, ᯥ稢-
         騥 ।⢠ ࠢ 䠩,  ᮤঠ  ( 
           ଥ)  㤠 䠩.  ஬ ⮣,  䠩  
          묨  १ ᡮ 㤮, ᡮ  -
          ⠭   १ - ⠭ 室  ᠬ
         ணࠬ.
              ⠪,  㦭 ,  ᫨ த㡫஢   䠩
             訡 㤠?   ,  䠩 ⥬ MS-DOS 뫠
         ࠧࠡ⠭ ⠪,        ⠭  
         䠩   ⠢ 㤠:   ᪮쪮 ᯥ樠 -
         , ।祭  ⠭  䠩. 
             ⨫  ⠢    ᭮  ணࠬ
         ।. 㣨  ਮ ⤥쭮.  ⤥쭮 ਮ-

                                      - 11-2 -
           ।   ࠭묨  "Norton-⨫-
         "  "Mace-⨫".   㪠 ணࠬ  த
           "Ultra-⨫" ⮨   ⨫, 饣-
           "᢮ ࣮"*.   饥 ६    
         १  ᫥  饤㯭  ࠭ ண-
         ࠬ ᯥ祭.

              饩   㤨 楤 ⠭ 
         䠩   ᯮ짮 ⨫ CHKDSK  RECOVER 樮 -
         ⥬ MS-DOS  ⠭ ࠧ襭  ﭭ 䠩.
           㤥 ⠪ 㦤 ਬ 㣨 ᯮᮡ ⠭-
          䠩,   ᥡ ᪨ ணࠬ "Norton--
         "  ন 짮⥫ ணࠬ "Ultra-⨫".
               ⮣,  ⮡  ࠡ 㪠    ।,  
             ࠡ  ᥩ 䠩 ⥬ MS-DOS,  ⮣ 
         ᬮ   ࠭祭,    ⨫ ⠭-
          䠩. ⬥⨬,   "Norton-⨫"  "Ultra-⨫" -
          ⮫쪮  ᮭ   "IBM"   ᮢ-
         ⨬   ᮭ .  "Norton-⨫", 稭
          ᨨ 2.01, ⢫ ⠪ ⠭ 䠩, ᯮ-
            ⪨  ᪠ (   10- ⪨
         ᪨  ᮭ  ⨯ IBM-PC    ᮢ⨬ 
           ।),   "Norton-⨫",  稭  ᨨ 3.0,  
         প  20- ⪨ ᪮  IBM PC-AT, ⠪
            ᪮ 让  (ࠡ  ࠢ -
         樮 ⥬ MS-DOS ᨨ 3.0     ).  
         4.0  "Norton-⨫"  砥   ᥡ  ࠡ  
         ⥫ ᪮ ⨯, ࠡ騬  ࠢ 樮
         ⥬ MS-DOS  ᫮,   ᪮ ⥫ ଠ஢
         ᮣ᭮ ⠭ ᮣ襭  樮  ⥬ MS-DOS.
              ᬮ   ,      ⨫  ⠭ 䠩
         १砩   ࠡ  ।,       뫨
         ࠧࠡ⠭,   ⠪ ,     ࠡ -
         騬 ࠧ  । ⭮ 樮 ⥬ MS-DOS, 
         ᮡ  ⮣,    襩  ⥬   ᮭ
          IBM-PC   筮  ⥯  ᮢ⨬    
         ᮭ  .   ⮩ 稭    祭
         ᠭ ணࠬ,    ஡   ⮬
         砥,   㣨 ⨫  ࠡ ,    蠥,
            室  襩 設.  ணࠬ RESCUE  
         樨        ७   ᯮᮡ  
         ᢮⢠.  ணࠬ RESCUE ।祭   ࠡ    ᪠
         (ᬥ묨  ﭭ묨)  ᫮,  ଠ ᪮ ᮮ⢥-
          ⠭ ᮣ襭    樮  ⥬  MS-DOS.
         ०  祬    த㥬  ᯮ짮 "Norton --
         ", "Ultra-⨫"  ୠ⨢  ணࠬ RESCUE, -
           稬 ᭮ ਭ樯 ⥬ ᪮  MS-DOS  -
          ਭ樯 ⠭ 䠩.
         
             * ᮡ ᪮ ࠭ ணࠬ  ᯥ-
         ,    ஬  짮⥫  ᢮ ᪮஢ 
         ᯮ짮 ணࠬ;  ᫨ 짮⥫  室  ᯮ짮
         ணࠬ ,    ᫠ ࠧࠡ稪 㪠  -
         㬥樨 㬬,  ᫥  祣    ⠥  "ॣ஢
         짮⥫"      ࠢ    祭  ଠ樨  
         . (ਬ砭 ॢ稪.)


                                     - 11-3 -

                     ᭮ ਭ樯 ⠭ 䠩

              ⭮  㤥 ᭮ 㧭,    -
           䠩.  ⨢ ,  ᫨  䠩 ,
            ᮢ襭 㤠   孮  ᪠  ᥣ.
          । 筮 ୮,  ᪮ ᫥ ⮣,  䠩
                   㯠    -
          ⠭  MS-DOS.
               䠩,  ࠭塞 樮  ⥬  MS-DOS  
         ᪥, ⮨  ᫥  ⥩:
              -   ⠫, 뢠饣 䠩;
              - ।   䠩;
              - ᥪ஢ ,  ᮤঠ ᠬ  䠩.
               ࠭ 䠩 ࠣ ⮫쪮    
         䠩:  ⭮騩     ⠫  ࠭⢮,  
         ⮥.     㯠  ஫  ஫  祪  
         樮  ⥬ MS-DOS  饭  ᥪࠬ  䠩-
         .    䠩,  ,   ,   
         稭  ⠭ 䠩  ⮬ 砥,   
           -     䠩.  ஡  -
         ।      䠩    ࠧ ⠫  ਬ
          ,   ᭠砫  ᬮਬ   ᪮,  
         ଠ஢  ࠧ묨  ᯮᮡ   ࠢ 樮
         ⥬ MS-DOS.
                ࠧ 뢠 ଠ ⠭   -
           ⪨ (ﭭ) ᪮.  ⬥⨬,    -
         ⥬  40-४ ଠ, ন 樮 -
           MS-DOS ,  ⠪  ᯮ짮  3,5-묨 
         ᪠.  ⠪ ⥬ ᪮  3,5-  -
             ᬠਢ ன ⥬,   40-४
         ᪮  5,25-  ᪮,      砥,
          ᪮ 3,5-  ᪮ ᮥ  -
         騬  ⥬ IBM PC, IBM PC-XT  IBM PC-AT ஫ࠬ -
          ᪮. 80-४ ଠ, ন 樮 -
         ⥬  MS-DOS  ,  ,  筮      塞묨  
         3,5-  5,25-  ᪮.


                 40-४, ஭, 5,25-
                                    ᪮

               . 11-1 ।⠢   40-४, -
         ஭, 5,25-  ᪮.   ४ (஦-
         )  ᥪ.  ਢ ਬ ᯮ  䠩  -
         .    ࢮ    樨        ᪠,
         ଠ஢    ᥬ  ᥪ஢   ४.   ன
          樨  ⮫쪮 ࠢ  ଠ  - ⫨稥
         ४ 0  ᪠,  ଠ஢   ᥪ஢  
         ४.
               ࢮ    㭪  11-1 ।⠢ ⥩訩 ଠ
         ᪠,  ࠡ饣  ࠢ 樮 ⥬  MS-DOS.
         ᪮    ⠭ ᪮ ଠ 樮 ⥬
         MS-DOS ন ࠧ ᥪ  512 ⮢,     
         ஢ ଠ, ⠢   ᪠ ᫥騬 -
         ࠧ:

                                      - 11-4 -

                     40 ४  8 ᥪ஢  512 ⮢ =
                =  163840 ⮢ ( = 160  饩 )

                ᪠  ஢, ࠢ  १⠬,
         뢮묨  ࠭  ᯮ짮  FORMAT  CHKDSK.

                  ଠ  ᯮ 쬨 ᥪ஢  ४
               Ŀ
                \   ४                                         
                  \               1         2         3        3 
                    \   0123456789012345678901234567890123456789 
               C Ĵ
                  1    BXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEE 
                  2    FXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEE 
                  3    FXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEE 
                  4    DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEE 
                  5    DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEE 
                  6    DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEE 
                  7    DXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEEE 
                  8    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXEEEE 
               

                  ଠ ᯮ  ᥪ஢  ४
          Ŀ
           \    ४                
             \            ...     3     B =  砫쭮 㧪
               \   01     ...     9     D =  ⠫
          C Ĵ    F = ⠡  ࠧ饭 䠩
             1    BX     ...     E 
             2    FX     ...     E      쪮  楫 
             3    FX     ...     E           ਬ:
             4    FX     ...     E     X = ᥪ, ᮤঠ騥
             5    FX     ...     E          䠩
             6    DX     ...     E     E =  ᥪ
             7    DX     ...     E 
             8    DX     ...     E 
             9    DX     ...     E 
          
              . 11-1. 奬 ᯮ ଠ樨  40-४,
         ஭, 5,25-  ᪠

              , ଠ஢   ᥪ஢  ஦ (⮫-
           樮 ⥬ MS-DOS ᨩ 2.0  ),  宦  
         ,  ଠ஢   ᥬ ᥪ஢  ஦.  
         砥   ⮬ ᥪ     ४,
             ᪠. ஢   ⮦, 稢
           ᪠  ।⠢  㫥    ࠢ  
         १⠬, 뢮묨  ࠭  ᯮ짮  FORMAT
          CHKDSK.

                     40 ४  9 ᥪ஢  512 ⮢ ={F10}
               =  184320 ⮢ ( = 180  饩 )

              㣮 ࠧ稥    쬨-ᥪ묨  ᥪ묨
         ଠ⠬ ᪮ 砥  ⢥ ᥪ஢  FAT  (⠡
         ࠧ饭  䠩).  ᬮ  ,    ଠ  

                                      - 11-5 -
         ᥪ 砫쭮 㧪   ᥪ  ⠫,  ⢮
         ᥪ஢  ⠡ FAT   ᥪ஢ ଠ.  ᪨ 
         ଠ⮬  ᥬ ᥪ஢  ४   ᥪ FAT (ᥪ-
          2  3 ஦ 0).  ᪨  ଠ⮬   ᥪ஢  ४
           ᥪ FAT (ᥪ  2  5 ஦ 0). 室-
            ⥫쭮 ⢥ ᥪ஢ FAT  -ᥪ-
          ᪠  ᫥⢨  ⥫쭮 䠩
         ࠭⢠,  ࠧ 40 ⥫묨 ᥪࠬ ( -
          ᥪ  ४).

                 40-४, ஭, 5,25-
                                    ᪮

              ஭ 40-४    ᪨,  ଠ஢
          ࠢ 樮 ⥬ MS-DOS ,      -
         ⢮ ᥪ஢ FAT (ய樮쭮),    ஭ -
          ᪨,  襥 ⢮ ᥪ஢ ⠫,  
         㢥  饥  ᫮ 䠩,  ᯮ  ᪥.   
         ଠ ஭ ᪮ ( 쬨-   -४) 
         ⠫   ᥪ  ।  ᥬ  ᥪ஢.  
         ஭ 40-४ ᪮ ଠ⮢,  ন -
         樮 ⥬ MS-DOS,  ।⠢  㭪 11-2.  
          㭪  쬨-ᥪ ଠ.  ࠢ  -
         㭪  -ᥪ ଠ.
               ᪠,  ।⠢  .11-2 祭 宦 
          ᪠, ।⠢  .11-1. ⬥⨬,   
         ஭  ᪠,  ଠ஢    ࠢ
         樮  ⥬  MS-DOS,  ࠭塞    ४ ଠ
         ᥣ 稭  ஭ 0 ᥪ 1   ᯮ 
         ᫥  ᥪ    ⮬ ४.  ⮬ ந室 室 
         ஭ 1  ଠ த ᯮ  ࢮ  -
          ᥪ ४.   ᭮ ந室   ஭ 0
          ଠ 稭     ࢮ  ᥪ  ᫥饣
         ४    ⠪    ᫥ ᥪ ᫥ ४
         ஭ 1.  ⬥⨬ ⠪,   ᯮ ᥪ஢ ⠫  
         ᥪ஢  ⠡  FAT  ⫨   ஭ ᪮.  
         ஭ ଠ    ४ 砫쭮  㧪 
         ய樮쭮 ⢮ ⠪  ᥪ஢ ⠡ FAT,   
         ஭ ᪨.  ᫮ ᥪ஢ ⠫,  ,  
         ଠ⮢ ஭ ᪮ ⠥  ᥬ.   ᭮, ࠢ-
          १ ।⠢       -
         ⠬ 믮 ணࠬ CHKDSK,    ஢ 
           ଠ⮢ 40-४ ஭  ᪮:
                 40 ४  8 ᥪ஢  512 ⮢  2 ஭ =
                  = 327680 ⮢ ( = 320  饩 )

                 40 ४  9 ᥪ஢  512 ⮢  2 ஭ =
                  =  368640 ⮢ ( = 360  饩 )


                 80-४, ஭, 5,25-
                                    ᪮

              樮 ⥬ MS-DOS ᨨ 3.0  ᯮ짮-
           ଠ 5,25-  ᪮, ⭮ 筮

                                      - 11-6 -
           ଠ "襭 ".  ଠ ।⠢-
           ࠭  騬  ꥬ    1,2  
         ⮢    ॡ ᯮ짮 ᯥ樠쭮 ᪮ 80-४-
         ,  5,25-  ᪮.  ଠ 襭 
           3,5-묨  ᪠.
               뢠  ଠ  祭  宦    ०,
         ⮫쪮  ᬮ७ ଠ.  祭  ଠ -
           ᯮ짮  ᪮  㤢 ⢮ -
           (80(    ଠ஢ 襣 ⢠ ᥪ஢ (15) 
          ४.  㭪 11-3 ।⠢  ⮣ ଠ
           ᤥ  業     ᥪ஢ ⠫  ⠡
         FAT,  ᯥ稢 㢥祭 .

           ଠ  ᯮ 쬨     ଠ  ᯮ 
               ᥪ஢  ४               ᥪ஢  ४
         Ŀ   Ŀ
                \   ४                       \   ४             
                  \         ...    3             \         ...    3 
                    \   012 ... 6789               \   012 ...    9 
               C Ĵ         C Ĵ
                  1    BXX ... XXXX             1    BXX ...      
                  2    FXX ... XXXX             2    FXX ...      
                  3    FXX ... XXXX             3    FXX ...      
         ஭  4    DXX ... XXXX    ஭  4    FXX ...      
            0     5    DXX ... XXXX       0     5    FXX ...      
                  6    DXX ... XXXX             6    DXX ...      
                  7    DXX ... XXXX             7    DXX ...      
          ________8    DXX ... XXXX             8    DXX ...      
                  1    DXX ... XEEE     ________9    DXX ...      
                  2    DXX ... XEEE             1    DXX ...      
                  3    XXX ... XEEE             2    DXX ...      
         ஭  4    XXX ... XEEE             3    DXX ...      
            1     5    XXX ... XEEE    ஭  4    XXX ...      
                  6    XXX ... XEEE       1     5    XXX ...      
                  7    XXX ... EEEE             6    XXX ...      
                  8    XXX ... EEEE             7    XXX ...      
                     8    XXX ...      
                                                   9    XXX ...      
                                          
         B =  砫쭮 㧪      쪮  楫 
         D =  ⠫                       ਬ:
         F = ⠡  ࠧ饭 䠩      X = ᥪ, ᮤঠ騥
                                                 䠩
                                            E =  ᥪ

              . 11-2.  奬 ᯮ  ଠ樨    40-४,
         ஭, 5,25-  ᪠
               ਢ ⭠ 㫠,   ᯮ짮
           ஢ન १⮢,  뢮  ࠭ ணࠬ CHKDSK,
           ࠡ뢠 80-४, 5,25-  :

             80 ४  15 ᥪ஢  512 ⮢  2 ஭ =
         = 1228800 ⮢ (= 1200   1,2  饩 )

              樮 ⥬  MS-DOS ᨨ 3.0 ᯥ稫 প
         3,5-  ᪥.  3,5- ᪥  ⮦ -
         ஢  ⠪  ஭  ஭ ଠ 

                                      - 11-7 -
         ᥬ   ᥪࠬ   ४,   뫮  -
         砥 ᯮ짮 40-४,  5,25- ᪥  ᫮,
          䨧᪮  ᪮ 㤥   FORMAT. -
         ஭, 80-४ ଠ  9 ᥪࠬ  ४  3,5--
          ᪥  ⠪   ᭮ 樮  -
          MS-DOS ᨨ 3.0.   . 11-3 ।⠢  ᪠
          ⮬ ଠ.  ଠ ।⠢  ᯮ짮-
          饩    720 :

                 80 ४  9 ᥪ஢  512 ⮢  2 ஭ =
                  =  737280 ⮢ ( = 720  饩 )

              3,5- ᪥ ଠ  ଠ 720   ⥬
            ᪮ ᪮  FORMAT  ࠬ-
         ஢, । ଠ. ᯮ㥬 ᪨ ᪮, -
            ᯥ樠쭮 ᮧ  ଠ஢ 720  
         ᪥,  ᮧ  ६ 砫쭮 㧪, ᫨ ।⠢-
           ப 祭  䠩 CONFIG.SYS:
                         DEVICE = DRIVER.SYS/D:

           ।⠢ ᮡ 䨧᪨  ᪮  80-४-
         ,  3,5-  ᪥  (0=A:,  1=B:    ⠪   ).   
         DRIVER.SYS ।⠢ ᮡ ࠩ,  ⠢塞 樮
         ⥬ MS-DOS ᨩ 3.2  .   砫쭮 㧪 -
         ⥬ 䠩 DRIVER.SYS ᮧ ᪨ ᪮,  ᯮ ᫥-
           㪢,   ᪮,  ਯ뢠 
         㪢  䨧᪮ ᪮.  ᫥ ⮣,    
         ଠ஢  ଠ 720 ,    뢠   
          ந , ᯮ  䨧᪮ ᪮ 
         ᮮ⢥饥  ᪮ ᪮.
             樮 ⥬ MS-DOS ᨨ  3.30  ਫ    
         ଠ 襭   3,5- ᪥,  ᮤঠ 
         80 ४,     ଠ஢  18 ᥪ஢  (.
         㭮 11-3).   ଠ ।⠢   ᪥ 
         1,44   ᯮ짮 ᪮, ஢  2 -
         .  樠 ᪮, ।祭  3,5- -
         ,    ᮭ  ⨯ IBM  PS/2,
         ॡ  ঠ ⮣ ଠ.  1,44- ᪮-
          ন ⠪ ଠ 720- ᪮:
                 80 ४  18 ᥪ஢  512 ⮢  2 ஭ =
                  = 1474560 ⮢ ( = 1,44  饩 )



                                      - 11-8 -











             ଠ ᯮ ⭠     ଠ  ᯮ 
                   ᥪ஢  ४                 ᥪ஢  ४
               (5,25-  ᪥)            (3,5- ᪥)
             Ŀ   Ŀ
                    \   ४                      \   ४             
                      \         ...   7             \         ...    7 
                        \   012 ... 789               \   012 ...   89 
                   C Ĵ         C Ĵ
                      1    BXX ... XEE             1    BXX ...   XX 
                      2    FXX ... XEE             2    FXX ...   XX 
                      3    FXX ... XEE             3    FXX ...   XX 
                      4    FXX ... XEE    ஭  4    FXX ...   XX 
                      5    FXX ... XEE       0     5    FXX ...   XX 
                      6    FXX ... XEE             6    FXX ...   XX 
             ஭  7    FXX ... EEE             7    FXX ...   XX 
                0     8    FXX ... EEE             8    DXX ...   XX 
                      9    FXX ... EEE     ________9    DXX ...   XX 
                     10    FXX ... EEE             1    DXX ...   XX 
                     11    FXX ... EEE             2    DXX ...   XX 
                     12    FXX ... EEE             3    DXX ...   XX 
                     13    FXX ... EEE    ஭  4    DXX ...   XX 
                     14    FXX ... EEE       1     5    DXX ...   XX 
              _______15    FXX ... EEE             6    XXX ...   XX 
                      1    DXX ... EEE             7    XXX ...   XX 
                      2    DXX ... EEE             8    XXX ...   XX 
                      3    DXX ... EEE             9    XXX ...   XX 
                      4    DXX ... EEE    
                      5    DXX ... EEE 
                      6    DXX ... EEE 
             ஭  7    DXX ... EEE 
                1     8    DXX ... EEE 
                      9    DXX ... EEE 
                     10    DXX ... EEE 
                     11    DXX ... EEE 
                     12    DXX ... EEE 
                     13    DXX ... EEE 
                     14    DXX ... EEE 
                     15    XXX ... EEE 
             










                                      - 11-9 -
                ଠ  ᯮ ᥬ ᥪ஢  ४
                              (3,5- ᪥)
                      Ŀ
                             \   ४               
                               \           ...    7 
                                 \   012   ...   89 
                            C Ĵ
                               1    BXX   ...   XX 
                               2    FXX   ...   XX 
                               3    FXX   ...   XX 
                               4    FXX   ...   XX 
                               5    FXX   ...   XX 
                               6    FXX   ...   XX 
                               7    FXX   ...   XX 
                               8    DXX   ...   XX 
                      ஭  9    DXX   ...   XX 
                         0    10    DXX   ...   XX 
                              11    DXX   ...   XX 
                              12    DXX   ...   XX 
                              13    DXX   ...   XX 
                              14    DXX   ...   XX 
                              15    DXX   ...   XX 
                              16    FXX   ...   XX 
                              17    FXX   ...   XX 
                       _______18    FXX   ...   XX 
                               1    FXX   ...   XX 
                               2    FXX   ...   XX 
                               3    FXX   ...   XX 
                               4    FXX   ...   XX 
                               5    FXX   ...   XX 
                               6    FXX   ...   XX 
                               7    FXX   ...   XX 
                               8    FXX   ...   XX 
                      ஭  9    FXX   ...   XX 
                         1    10    FXX   ...   XX 
                              11    FXX   ...   XX 
                              12    FXX   ...   XX 
                              13    FXX   ...   XX 
                              14    FXX   ...   XX 
                              15    FXX   ...   XX 
                              16    XXX   ...   XX 
                              17    XXX   ...   XX 
                              18    XXX   ...   XX 
                      
         B =  砫쭮 㧪      쪮  楫 
         D =  ⠫                       ਬ:
         F = ⠡  ࠧ饭 䠩      X = ᥪ, ᮤঠ騥
                                                 䠩
                                            E =  ᥪ

              . 11-3.  奬 ᯮ  ଠ樨    80-४,
         ஭,  5,25-   3,5-  ᪠ -
         襭 ⭮


                              砫쭮 㧪

                ᥪ  ᪥, ଠ஢  ࠢ-
          樮 ⥬ MS-DOS,  ᥣ ।,   "-

                                      - 11-10 -
          砫쭮 㧪".   ᮤন  ணࠬ,
          ⮬᪨ 㦠  ,    ᯮ-
            㧪 樮 ⥬ MS-DOS ᫥  -
           ⥬  ᫥  ⥬.   ணࠬ -
                  ᪠    ᪥  䠩,  ᮤঠ騥
         ணࠬ 樮 ⥬ MS-DOS. ᫥ 宦  䠩-
           ணࠬ  砫쭮 㧪 㦠  䠩   
         । ࠢ 樮 ⥬ MS-DOS.  ᪮ -
         ⢮  䠩 樮 ⥬ MS-DOS  ᯮᮡ,   
         ࠭,   ࠧ묨  ᨬ  ⨯ ॠ-
         樨   (ਬ,      ᮭ   ஢   ⨯   "IBM
         PC","COMPAQ"  "CompuPro"), ᮤন  砫쭮 -
          ⮦  ஢.
               楫 ࠭ 筮 ᥪ 砫쭮 㧪 -
             ଠ஢ ᪥, ᨬ  -
         , ᮡࠥ   ᤥ   "᪮ 砫쭮 -
         "  "᪮, ᮤঠ騬  ⮫쪮 ".
                  砫쭮 㧪  ᥣ  ᮤঠ
          室.   砫쭮 㧪  室 ਪ-
         뢠 ⥬    ⮩   ३   ண-
         ࠬ 砫쭮 㧪.  ᠭ 樮 ⥬ MS-DOS
         ᨨ 2.00 27 ⮢   砫쭮  㧪,  ᯮ
           砫쭮  室  ணࠬ 砫쭮 -
         ,  ᮤঠ ଠ  ଠ ᪠.   ⮩ 㯯
         , ணࠬ     ଠ  ଠ-
         ஢,  室  ᪠.   ⠡ 11-1 ।⠢ -
         ন   ଠ樨  ଠ஢ 室饣  
         砫쭮 㧪.
              ଠ   ଠ஢   砫쭮 㧪 -
           祭 㦭  । ଠ  ᪠. 
         砫쭮  㧪  室 ᮧ,    ଠ
          FORMAT (  ᪮)   FDISK ( -
          ᪮).  ଠ樨  ଠ஢   砫쭮
         㧪    "OEM  and  Version"  ("ଠ-⮢⥫
         饣  㤮    ")  筮 ᮤন 
         ᨨ  ॠ樨 ᯮ짮襩 樮  ⥬ MS-DOS
          ᮧ  砫쭮 㧪.  ᫨ ,  ਬ, 
         3.3 樮 ⥬ IBM-DOS ᯮ짮   ଠ஢-
          ᪠   㤥 ᮤঠ ଠ "IBM 3.3".  ⠫-
           ଠ樨   ଠ஢      砫쭮
         㧪  ।⠢  ᮡ  (⢮)   -
         ஢ BIOS ( ) (.   6), ᪮  㦥 ⢮-
         ,  ६ ଠ஢ ᪠.
              ᫥   ଠ樨    ଠ஢  (-
         ⢮  ᥪ஢  ४,  ⢮   ⢮ -
         ) ᥪ஢ ।  ⥬     ⠢-
            砫쭮 㧪   ଠ஢ ᪠.
              ணࠬ READFMT,  ।⠢ ⨭ 11-1,  ᮤন
         ᠭ ᯮᮡ,   ண ଠ  ଠ஢
           砫쭮 㧪 뢠  ᪠    ⮡ࠦ
          ࠭ ᯫ.  ஬ ⮢ ଠ஢,   -
            砫쭮 㧪,  ணࠬ  READFMT  ⠪
         ⢫    ᪮쪨 㣨 ⮢,  ⭮ 
         ଠ஢,  ⠪   ⥬ ,    
             ᪮. ணࠬ READFMT ⮡ࠦ -
         祭 १  ࠭ ᯫ.


                                     - 11-11 -
                                                         11-1
                    ଠ  ଠ஢, ᮤঠ 
                             砫쭮 㧪
         
         饭  饭
         (-   (⭠-        ঠ  
         筮)   筮)
         
           0         00       3    室  ணࠬ
                                       砫쭮 㧪
         Ŀ
           3         03       8 ⮢  -⮢⥫    
                                       㤮        
         Ŀ    
          11         0B       1 ᫮  ⢮ ⮢           
                                        ᥪ                  
          13         0D       1    ⢮ ᥪ஢        
                                                         
          14         0E       1 ᫮  ᫮ १ࢨ-      B   
                                        ᥪ஢        I   
          16         10       1    ⢮ ⠡      O   
                                       FAT                    S   
          17         11       1 ᫮  ⢮ ⮢        
                                        ⠫                 
          19         14       1 ᫮  ⢮ -        
                                        ᥪ஢                
          21         15       1     ⥫ ।        
          22         16       1 ᫮  ⢮ ᥪ஢         
                                       ⠡ FAT                 
              
          24         18       1 ᫮  ⢮ ᥪ஢  ४    
          26         1A       1 ᫮  ⢮              
          28         1       1 ᫮  ⢮    ᥪ஢  
         Ĵ
          30         1E     416 ⮢ ணࠬ 砫쭮 㧪   
         446         1BE     16 ⮢ ଠ  ࠧ        
                                                                
         462         1CE     50 ⮢ ⠫쭠  ணࠬ      
                                        砫쭮 㧪            
         


              *  樮 ⥬ S-DOS ᨩ 2. = 3  -
          室
                 樮 ⥬ S-DOS ᨩ 2.  =  2  ⮢
         ⪨ 室   NOP.
              ** 饥 ⢮ ⮢  ୥ ⠫.
              ***   ⥫ ।  ᥣ  ⢨⥫-
         ,   樮 ⥬ MS-DOS ᨨ 2.0
              **** ⭮ ⮫쪮  ⪨ ᪠,  ᮤঠ騬  ⠡
         砫쭮 㧪;    ᯮ   ᪠.




                                     - 11-12 -
                    ⨭ 11-1. ணࠬ READFMT
         
            PAGE          50,132
            TITLE         READFMT.ASM/.EXE
           .SALL          ;  뤠 ७  ணࠬ
           .8086          ; 짮  ⮫쪮 
                          ; ய஢ 8086/8088
         ;*************************************************************
         ;**  ணࠬ READFMT  ᨨ 1.00
         ;**       ணࠬ 뢠 ᥪ 砫쭮 -
         ;** 㧪   ᪠, ஢뢠 㦥   -
         ;**   砫쭮 㧪  ࠬ஢ BIOS(BPB), -
         ;**   ࠭ ᯫ  ଠ   
         ;**  ଠ.
         ;**
         ;**     ਬ砭:  ६ ᮧ ⮩ ணࠬ  ४-
         ;** ⥫  LINK  "/:1"   ᯮ짮  ⮣,
         ;** ⮡  ६ 㧪 ணࠬ,  ।﫮  
         ;** ⢨⥫쭮  㦭  ⢮  .   㬮砭
         ;** ᨬ ꥬ ।塞   ⮬ 砥,
         ;**  "/:1"  ,       窨
         ;** 㧪  ணࠬ,  뢠 襭 ணࠬ 
         ;** 뤠祩 ᮮ饭  訡, ⮬     -
         ;**  ᤥ ⥫쭮  ।   
         ;** ६ ᢮ ࠡ.
         ;*************************************************************
         ;
         ;   :
         INCLUDE       stdequ.inc  ;  ⠭ 䠩 ࠢ
         INCLUDE       stdmac.inc  ;  ⠭ 䠩 ᮢ
         INCLUDELIB    stdlib.lib  ;   ⠭ ⥪
                                   ; STDLIB.LIB  ६ ।-
                                   ; ஢
                                   ;
         ;   ணࠬ 饭  譨  ⥪,
         ; 室騥  STDLIB.LIB
         EXTRN  dosv2con:NEAR      ;   뢥  ࠭ ⥪
                                   ;  DOS
         EXTRN  dosver:NEAR        ;  ⥪   DOS
         EXTRN  bin2dec2:NEAR      ; 뢥  ࠭ ᯫ DX:AX 
                                   ;    ASCII
                                   ; (᫨  ॣ  DX=),  ॣ AX
                                   ; ⠥ 
         ;
         ; - - - - - -   - - - - - - - - - - - - - - - - - -
         ;
         .MODEL   SMALL            ;  
         .STACK  2048              ; ᮧ 2 ⮢  ⥪
         ;
         ;*************************************************************
         ;  BH  
         ;
         .DATA
         ;
         ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ;      C뫪  饭  ⠬  砫쭮 -
         ; 㧪,  ⠭   ᪠  饭   , -

                                     - 11-13 -
         ; ⢫   ES.  饭  ந  ⮫쪮
         . ⠬    " ࠬ஢ BIOS"(BPB);  
         ;     ᯮ ᫥      
         ;  砫쭮 㧪, .
         ;
         bootrecord     STRUC
         BootJump       db     3 DUP (?) ; 室  室
         OEMstring      db     8 DUP (?) ; ଠ-⮢⥫  
                                         ; 樮 ⥬ MS-DOS
         SectorBytes    dw     ?         ; ⢮ ⮢  ᥪ
         ClusterSec     db     ?         ; ⢮ ᥪ஢  
         ReservedSec    dw     ?         ; १ࢨ஢ ᥪ
         FATcopies      db     ?         ; ⢮  ⠡ FAT
         DirEntries     dw     ?         ; ⢮ ⮢ 
                                         ; ୥ ⠫
         TotalSectors   dw     ?         ; 饥 ⢮  ᥪ஢
                                         ; ᪠ (100% ᪠)
         MediaDescrip   db     ?         ; ⥫ ।
         FATsectors     dw     ?         ; ⢮ ᥪ஢, 
                                         ;  ⠡楩 FAT
         TrackSectors   dw     ?         ; ⢮ ᥪ஢  ४
         Heads          dw     ?         ; ⢮ 
         HiddenSectors  dw     ?         ; ⢮  ᥪ஢
         bootrecord     ENDS
         ;
         .CODE
         ;
         ; C࠭   (࠭  ।
         ;  ᥣ  ணࠬ)
         ;
         DSsave         dw    seg DGROUP ;   ॣ DS
         ;
         .DATA
         PSPseg         dw     ?         ; ᥣ PSP (䨪 -
                                         ; ࠬ ᥣ)
         .CODE
         main     PROC NEAR              ; 砫 ᭮ 
         ;
         ;***********************************************************
         ;  
         ;***********************************************************
              mov   ds,DSsave           ; 樠 DS
              mov   ax,es               ;   ᥣ PSP
              mov   word ptr PSPseg,ax  ; .......  ࠭ 
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ; B뢥  ࠭ ᯫ ᮮ饭  ᪥
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

               @DisStr Start1_Msg       ; 뢥  ࠭ ᯫ
                                        ; ᮮ饭  ᪥
         ;
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ;  / ᪮
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                  mov   di,80h                  ;  ப
                  cmp   byte ptr es:[di],0      ;   ࠬ?
                  je    get_default_drive       ; ,  ᪮

                                     - 11-14 -
                                                ;  㬮砭
                  cmp   byte ptr es:[di+3],':'  ;   -
                                                ; 稥?
                  jne   get_default_drive       ; ,  ᪮
                                                ;  㬮砭
         get_disk_drive:                        ;  ᪮ 
                                                ;  ப
                  xor   ah,ah                   ;  AH
                  mov   al,byte ptr es:[di+2]   ;  
                                                ; ᪮
                  cmp   al,">"                  ; ᯮ짮 
                                                ; ॠᮢ?
                  je    get_default_drive       ; ,  ᪮
                                                ;  㬮砭
                  cmp   al,61h                  ; ᪮  㪢
                                                ; 孥 ॣ?
                  jge   convert_upper           ; , 믮 ८-
                                                ;   ᨬ
                                                ; ASCII 孥 ॣ
                  sub   al,40h                  ;   믮  
                                                ; ᨬ ASCII  
                                                ; ॣ
                  jmp   short test_drive        ;  த
         convert_upper:
                  sub   al,60h                  ; ८ࠧ ᨬ
                                                ; ASCII 孥 ॣ
         test_drive:
                  cmp   al,1                    ; ᫮  ?
                  jl    bad_drive               ; ,   ᮮ饭
                                                ;  訡
                  dec   al                      ;  믮 :=0,
                                                ; ...... : = 1   ..
                  cmp   al,25                   ; १ ।e
                                                ;  > 25 (>Z:)?
                  jg    bad_drive               ; ,   ᮮ饭
                                                ;  訡
                  jmp   short drive_used        ;   ࠭
                                                ; 㪠 ᪮
         get_default_drive:
                  mov   ah,19h                  ;  ᪮
                                                ;  㬮砭
                  @DosCall
         drive_used:
                  mov   byte ptr DiskDrive,al   ; ࠭ ᪮
                  jmp   short drive_end         ;  த
         bad_drive:
                  @DisStr BadDrive_Msg          ;  뢥  ࠭
                                                ; ᮮ饭  訡
                                                ;(ᨭ⠪᪮ 訡)
                  jmp   terminate               ;    DOS
         drive_end:
         ;
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ; C뢠   ଠ樨 ᥪ 砫쭮 㧪.
         ; ᫥ 饭 ES:DI(ES:0) 㪠뢠     ,
         ; ᮤঠ騩    砫쭮 㧪.
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

                                      - 11-15 -
         .DATA
         BootSeg   dw    ?                      ; ࠭ 
                                                ; ᥣ  -
                                                ;  ᮤঠ饣 
                                                ;  砫쭮
                                                ; 㧪
         .CODE
                   mov   bx,40h                 ; । 1024 
                   call  memalloc               ; ।  
                   jnc   read_boot              ; த, ᫨ 
                                                ; 뫮 訡
                   call  mem_err_handler        ;  ࠡ 訡
                   jmp   terminate              ;    DOS
                                                ;
         ;                                      ;
         read_boot:
                   mov   word ptr BootSeg,ax    ; ࠭  ᥣ-
                                                ; 
                   push  ax                     ;   ࠭  
                   mov   al,byte ptr DiskDrive  ;   ᪮
                                                ;  뢠
                   xor   ah,ah                  ;  AH
                   pop   ds                     ;   ᥣ-
                                                ;   
                   mov   dx,0                   ;  ᪨
                                                ; ᥪ 0
                   mov   cx,1                   ;    ᥪ
                   mov   bx,0                   ;    DS:0
                   jnt   25h                    ;  
                   jc    read_boot_error        ; , ᫨ ந諠
                                                ; 訡
                   popf                         ;  䫠, -
                                                ; ⮫  ⥪ 
                                                ; ६ 뢠
                                                ; "int 25h"
                   mov   ds,DSsave              ; ୠ 樠-
                                                ;   DS
                   mov   ax,word ptr BootSeg    ;   ᥣ-
                                                ;  砫쭮 㧪
                   mov   es,ax                  ;  樠஢ 
                                                ;  ES
                   xor   di,di                  ;  ᬥ饭 0
                   jmp   end_read_boot           ;  த
         ;
         read_boot_error:
                   popf                         ;  䫠, -
                                                ; ⮫  ⥪ 
                                                ; ६ 뢠
                                                ; "int 25h"
                   mov   ds,DSsave              ; ୠ 樠-
                                                ;   DS
                   @DisStr ReadError_Msg       ;   뤠祩
                   jmp   terminate              ; ᮮ饭  訡
         ;
         end_read_boot:
         ;

                                     - 11-16 -
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ;     ஢,  ⮡  ⠭   砫쭮 㧪
         ; ᮤঠ  㦭    ଠ.  ᫨  ᪮  
         ; 160-  320-  ,  砫쭮
         ; 㧪  㤥  ᮤঠ  㦭  ଠ  
         ; (   ࠢ ⠪   ⠭-
         ;  ଠ⮢ ᪮ ,  砥 祣 ⠡ FAT  
         ; 뢠    楫  祭   䨪 (ID)
         ; ଠ.   ॡ  । ଠ  ᪠
         ; (      160-   -ᨨ 樮
         ; ⥬ DOS 1.0 ; 360-   ᨨ  樮
         ; ⥬ DOS 1.1.
         ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ;

                   mov    bx,20h              ; । 512 -
                                              ; ... ⮢ (32 ࠣ)
                   call   memalloc            ; ।  
                   jnc    read_fat            ; த,  ᫨ 訡
                                              ;  뫮
                   call   mem_er_handler      ;  ३  -
                                              ; ࠬ ࠡ⪨ 訡
                   jmp    terminate           ;    DOS
         ;
         read_fat:
         .DATA
         FATSeg    dw     ?                     ;   ᥣ  
                                                ; ⠡  FAT
         .CODE
                   mov    word ptr FATseg,ax    ; ࠭  ᥣ-
                                                ;  FAT
                   push   ax                    ;  ࠭ 
                   mov    al,byte ptr DiskDrive ;  ᪮ 
                                                ; 뢠
                   xor    ah,ah                 ;   AH
                   pop    ds                    ;   ᥣ-
                                                ;   
                   mov    dx,1                  ;  ᪨
                                                ; ᥪ 1
                   mov    cx,1                  ;    ᥪ
                   mov    bx,0                  ; ࠭   DS:0
                   jnt    25h                   ;  
                   jnc    process_FAT           ; த, ᫨ 訡
                                                ;  뫮
                   popf                         ; ,  䫠
                   mov    ds,DSsave             ; ୠ 樠-
                                                ;   DS
                   @DisStr ReadError_Msg        ;   ᮮ饭 
                                                ; 訡
                   mov    ax,word ptr FATSeg    ;   ᥣ
                                                ; 砫쭮  㧪
                   call   memfree               ; ᢮ 
                   jnc    end_fat_err           ; , ᫨  뫮
                                                ; 訡
                   call   mem_err_handler       ; , 뢥 
                                                ; ࠭ ᯫ ᮮ-
                                                ;    訡

                                     - 11-17 -
         end_fat_err:
                   jmp    terminate             ;   DOS
         ;
         process_FAT:
                   popf                         ;  䫠, -
                                                ; ⮫  ⥪ 
                                                ; ६ 뢠
                                                ; "int 25h"
                   mov    ds,DSsave             ; ୠ 樠-
                                                ;   DS
                   mov    ax,word ptr FATSeg    ;   ᥣ
                                                ; 砫쭮  㧪
                   mov    es,ax                 ;  樠஢ ES
                   xor    di,di                 ;    ᬥ饭 0
         .DATA
         FAT_ID    db     ?                     ;  䨪樨
                                                ; (ID)  ⠡ FAT
         .CODE

                   mov    al,byte ptr es:[di]   ;   
                                                ; ⠡ FAT
                   mov    byte ptr FAT_ID,at    ;  ࠭   
                   call   memfree               ; ᢮ ᥣ
                                                ; ⠡ FAT
                                                ; ( 室  ES)
                   jnc    comp_byte_id          ; த, ᫨ 
                                                ; 뫮 訡
                   call   mem_err_handler       ;  뢥  ࠭
                                                ; ᮮ饭   訡
                   jmp    terminate             ; 室  樮
         ;                                      ; ⥬ DOS
         comp_byte_id:
                   mov    ax,word ptr BootSeg   ; 㪠  ᥣ
                                                ; 砫쭮 㧪
                   mov    es,ax                 ; ES:0 㪠 
                   xor    di,di                 ;   砫쭮
                                                ; 㧪
                   mov    al,byte ptr FAT_ID    ;  䨪-
                                                ;  (ID) ⠡ FAT
                   cmp    al,byte ptr es:[di].MediaDescrip ;  ࠢ
                                                ;  ⮬ ID
                                                ;    砫쭮
                                                ; 㧪
                   jne    chk_dos1_fmt          ; ᫨ ,  
                   jmp    end_read_fat          ; , த
         chk_dos1_fmt:
                   cmp    al,0FEh               ;   160-
                                                ;  ?
                   je     init_dos1_fmt         ; , 樠஢
                                                ;  砫쭮
                                                ; 㧪
                   cmp    al,0FFh               ; ,  320--
                                                ;     ?
                   je     init_dos1_fmt         ; , 樠஢
                                                ;  砫쭮
                                                ; 㧪

                                     - 11-18 -
         .DATA
         UnknownMedia db " । ଠ ᪠."
                      db  ",    "
                      db  "樮 ⥬ MS-DOS.",CR,LF,"$"
         .CODE
                   @DisStr UnknownMedia        ; 뢥  ࠭
                                               ; ᮮ饭  訡
                   jmp     terminate           ; 室  樮
                                               ; ⥬ DOS
         init_dos1_fmt:
                ; 樠஢   ଠ,  
                ;  160-  320- ଠ⮢ ᪮:
                   mov     word ptr es:[di+3],"D"   ; ।  㪢
                                                    ; "DOS  1.X"
                   mov     word ptr es:[di+4],"O"   ;    
                   mov     word ptr es:[di+5],"S"   ; ᨨ DOS 
                   mov     word ptr es:[di+6]," "   ; 砫쭮 㧪
                   mov     word ptr es:[di+7],"1"
                   mov     word ptr es:[di+8],"."
                   mov     word ptr es:[[b]di].SectorBytes,512 ; -
                                              ; ⢮ ⮢  ᥪ
                   mov     word ptr es:[di].ReservedSec,1   ; १-
                                                  ; ஢ ᥪ
                   mov     word ptr es:[di[.FATcopies,2     ; -
                                                  ;   ⠡ FAT
                   mov     word ptr es:[di].FATsectors,1    ; ⢮
                                                  ; ᥪ஢ ⠡  FAT
                   mov     word ptr es:[di].TrackSectors,8  ; ⢮
                                                  ; ᥪ஢  ४
                   mov     word ptr es:[di].HiddenSectors,0 ; ⢮
                                                  ;  ᥪ஢
                   cmp     al,0FEh      ;   160- ?
                   je      init_160K    ; , 樠஢ 
                                        ; 砫쭮 㧪
                   cmp     al,0FFh      ; ,   320-
                                        ; ?
                   je      init_320K    ; , 樠஢ 
                                        ; 砫쭮 㧪
         ;
         init_160K:
                   mov word ptr es:[di.9],"0"          ;  
                                                       ; "DOS 1.0"?
                   mov     word ptr es:[di.10],"?"          ;
                   mov     byte ptr es:[di].ClusterSec,1    ; ⢮
                                                            ; ᥪ஢ 
                                                            ; 
                   mov     word ptr es:[di].DirEntries,64   ; ⢮
                                                            ; ⮢
                                                            ;  ⠫
                   mov     word ptr es:[di].TotalSektors,320 ; 饥 -
                                                             ; ⢮
                                                             ; ᥪ஢
                                                             ;  ᪥
                   mov     byte ptr es:[di].MediaDescrip,0FEh ; ⥫
                                                              ; ⥫
                   mov     word ptr es:[di].Heads,1  ; ⢮ 
                   jmp          end_read_fat

                                     - 11-19 -
         ;
         init_320K:
                   mov     word ptr es:[di.9],"1"      ;  
                                                       ; "DOS 1.1"?
                   mov     word ptr es:[di.10],"?"
                   mov     byte ptr es:[di].ClusterSec,2    ; ⢮
                                                            ; ᥪ஢ 
                                                            ; 
                   mov     word ptr es:[di].DirEntries,112  ; ⢮
                                                            ; ⮢
                                                            ;  ⠫
                   mov     word ptr es:[di].TotalSektors,640 ; 饥 -
                                                             ; ⢮
                                                             ; ᥪ஢
                                                             ;  ᪥
                   mov     byte ptr es:[di].MediaDescrip,0FFh ; ⥫
                                                              ; ⥫
                   mov     word ptr es:[di].Heads,2  ; ⢮ 
                   jmp          end_read_fat
         ;
         end_read_FAT:
         ;
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ;      ᫨ 稭, 騥     ࠬ஢
         ; BIOS.  ਬ砭:  ES:DI  (ᬥ饭 0)  㪠뢠 
         ; 砫  砫쭮 㧪, ⠭   .  
         ;  祭 ࠭  ᥣ .
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         get_new_values:
                    xor    di,di    ;  DI
         ;
         ;  饥 ⢮ ᥪ஢, ᯮ㥬  
         ;  ⠡  FAT.
                xor    ah,ah                          ;  AH
                mov    al,byte ptr es:[di].FATcopies  ;  
                                                      ; ⠡ FAT
                xor    dx,dx                          ;  DX
                mov  bx,word ptr es:[di].FATsectors   ;  ᫮
                                                      ; ᥪ஢ ⠡
                                                      ; FAT
                mul    bx                             ; 㬭 
                                                      ;  ᫮
                mov    word ptr TotalFATSec,ax      ; ࠭ -
                                                    ;   1 ᫮
         ;
         ;  饥  ⢮  ᥪ஢,  ᯮ㥬 ᥬ
         ; ⠬  ⠫
                mov    ax,word ptr es:[di].DirEntries ;  饥
                                                      ; ⢮ -
                                                      ; ⮢ ୥
                                                      ; ⠫

                    mov    bx,word ptr DirEntBytes    ;  ࠧ
                                                      ;   -
                                                      ; ⮢ ⠫
                    xor    dx,dx                      ;   DX
                    mul    bx                         ; 㬭

                                     - 11-20 -
                    mov    bx,word ptr                ;
         es:[di].SectorBytes     ;  ⢮ ⮢  ᥪ
                    xor    dx,dx                      ;   DX
                    div    bx                         ; ࠧ
                    mov    word ptr DirSectors,ax     ; ࠭ -
                                                      ;   1 ᫮
         ;
         ; ᫨  饥  ⢮ 樫஢
               mov    ax,word ptr es:[di].TotalSectors  ;  饥
                                                   ; ⢮ ᥪ஢
               mov    bx,word ptr es:[di].TrackSectors   ;  -
                                            ; ⢮ ᥪ஢   ४
               xor    dx,dx                          ;   DX
               div    bx                           ;  ࠧ  
               mov    bx,word ptr es:[di].Heads ;  ᫮ 
               xor    dx,dx                        ;   DX
               div    bx                           ;  ࠧ  
               cmp    word ptr es:[di].HiddenSectors ;  ᥪ?
               je     store_cyl                      ; , ⥯ 
                                     ;  饥 ⢮ 樫஢
               mov    cx,word ptr es:[di].HiddenSectors ; , 
                                                         ; ᥪ = 1
               cmp    cx,word ptr es:[di].TrackSectors    ; 樫?
               je     add_cyl              ; 
               mov    ax,0                 ; , ந諠 訡
               jmp    short store_cyl      ;
         add_cyk:
                     add   ax,1     ;  ⥫ 樫
         store_cyl:
                     mov   word ptr Cylinders,ax ; ࠭ १
         ;
         ;   饥 ⢮ ⮢  ᥬ (100%) ᪥
                     mov   ax,word ptr es:[di].TotalSectors ; 
                                           ; 饥 ⢮ ᥪ஢
                     xor   dx,dx                          ;  DX
                     mov   bx,word ptr es:[di].SectorBytes  ; 
                                         ; ⢮ ⮢  ᥪ
                     mul   bx                      ;  㬭  
                     mov   word ptr TotalBytes,ax  ;  ࠭ १-
                                          ; , 騩   ᫮
                     mov   word ptr TotalBytes.2,dx ;  AX  DX
         ;
         ;  饥 ⢮ ᥪ஢  (  
         ; ࠭ 䠩)
                     mov   ax,word ptr es:[di].TotalSectors ; 
                                           ; 饥 ⢮ ᥪ஢
         xor   dx,dx                                    ;   DX
                    sub   ax,word ptr es:[di].ReservedSec ; 
                                           ; १ࢨ஢ ᥪ
                    sub   ax,word ptr TotalFATSec  ;  饥
                                     ; ⢮ ᥪ஢ ⠡ FAT
                                             ; (  ⠡ FAT)
                sub   ax,word ptr DirSectors    ;   ᥪ
                                                ; ୥ ⠫
                mov   word    ptr DataSectors,ax ;  ࠭ १
         ;
         ;  ⢮ ⮢  

                                     - 11-21 -
                 xor   ah,ah                           ;  AH
                 mov   al,byte ptr es:[di].ClusterSec  ;  ᥪ
                                                       ; 
                 xor   dx,dx                           ;  DX
                 mov   bx,word ptr es:[di].SectorBytes ;  
                                                       ; ᥪ
                 mul   bx                      ;  㬭   ᫮
                 mov   word ptr ClusterBytes,ax  ;  ࠭ १
         ;
         ;  饥 ⢮ ᥪ஢
                 mov   ax,word ptr DataSectors ;  ᥪ 
                 xor   bh,bh                      ;  BH
                 mov   bl,byte ptr es:[di].ClusterSec ;  ᥪ
                                                      ; 
                 xor   dx,dx                     ;  DX
                 div   bx             ; ࠧ  ⢮ ᥪ஢
                 mov   word ptr TotalClusters,a ;  ࠭ १
                                                 ;  ᫮
         ;
         ;  ⢮ ⮢   ⠡ FAT.
         ; ᥣ 12 ⮢, ᫨ 饥 ⢮ ஢ = 4,085 
         ; .
         ; ᥣ 16 ⮢, ᫨ 饥 ⢮ ஢ 
         ; 4,085.
                 cmp   word ptr TotalClusters,4085       ; 饥 -
                                       ; ⢮ ஢  4085?
                 jle   got_entry_size  ;  ᯮ 12-⮢
                                       ; 祭  㬮砭
                 mov   al,16           ;  - 16-⮢ 祭
                 mov   byte ptr FATentryBits,al ;  ࠭ 祭
         got_entry_size:
         ;
         ;  饥 ⢮ ⮢  (ᯮ㥬 ⮢)
                 mov   ax,word ptr DataSectors   ;  饥 -
                                                 ; ⢮ ᥪ஢
                 xor   dx,dx,                    ;  DX
                 mov   bx,word ptr es:[di].SectorBytes ;  
                                                 ; ᥪ
                 mul   bx                     ;  㬭   ᫮
                 mov   word ptr DataBytes,ax  ;   ࠭ १
                                              ;  2 ᫮
                 mov   word ptr DataBytes,2,dx   ;  AX  DX
         ;
         ; ᫨ ॣ  ᪠      
                 mov   ax,word ptr TotalBytes    ;  饥 -
                                               ; ⢮ ⮢  ᪥
                 mov   dx,word ptr TotalBytes.2  ; ... ( ᫮)
                 mov   cx,1024                   ; ⠭ ⥫
                 div   cx           ;   祭  
                 mov   word ptr KBytes,ax        ; ࠭ 祭
                 cmp   ax,1000              ; ᫨  ?
                 jl    dis_info             ; ,    稫
                 mov   bx,1000              ;  ⠭ ⥫
                 xor   dx,dx                ;  ॣ DX
                 div   bx                   ;   
                 mov   word ptr Mbytes,ax   ; ࠭  祭
                 mov   word ptr Mbytes2,dx  ;  ࠭ , ᫨

                                      - 11-22 -
                                            ; ⠪ 
                 cmp   dx,0                 ;   ?
                 je    megabytes_end        ; ,    稫
                 mov   ax,dx                ;  ⠭ 
                 mov   bx,10                ; ⠭  ⥫
                 xor   dx,dx                ;  ॣ DX
         ;
         ;  㤠 墮⮢ 㫥
         compress_loop:
                     div   bx               ; ࠧ ॣ AX  10
                     cmp   dx,0                ;   ⮪?
                     jne   megabytes_end       ; ,  稫
                     mov   word ptr Mbytes2,ax ;  ࠭ 
                                               ; ᦠ⮥ 祭
                     jmp   short compress_loop ;  ᭮  
         megabytes_end:
         ;
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ; ⮡ࠧ  ࠭ ᯫ ଠ  ᪥
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         dis_info:
                   @DisStr Start2_Msg ; ⮡ࠧ  ࠭ ᯫ
                               ;   ᮮ饭   ᪮
                   xor   ah,ah                 ;  ॣ AH
                   mov   al,byte ptr DiskDrive ;  뢥  ࠭
                                               ;  ᪮
                   inc   al         ;   ᯮ㥬 
                   add   al,40h     ; ८ࠧ     㪢
         ;                          ; ... ASCII 孥 ॣ
                   @DisChr al       ;  뢥   ࠭
                   @DisChr ':'      ; ᫥  ⠢ 稥
                   @Newline
         ;
                   @DisStr OEM_Msg ; 뢥  ࠭ ᮮ饭 O
                                   ; ( ଥ-ந⥫  ᨨ)
                   push  di                     ; ࠭ DI
                   mov   di,bootrecord.OEMstring ; 㪠 ப 
                   mov   cx,8          ; ⠭ 稪  ᨬ
         more_char:                       ;  ᯫ 横
                   mov   al,byte ptr es:[di]    ;  ᨬ
                   @DisChr al   ; ⮡ࠧ ᨬ  ࠭ ᯫ
                   inc   di            ; 㪠  ᫥騩 ᨬ
                   dec   cx            ; 稪  ᨬ
                   cmp   cx,0          ;  ᤥ ?
                   jg    more_char     ; , 뢥 ᫥騩 ᨬ
                   @NewLine            ; ,  稫
                   pop   di                     ; ⠭ DI
         ;
                   @DisStr  MeliaDescrip_Msg  ; ⮡ࠧ  ࠭
                                              ; ⥫  ⥫
                   xor   ah,ah,               ;  ॣ AH
                   mov   al,byte ptr es:[di].MediaDecrip ; 
                                              ; ⮢ 祭
                   @DisNum ax,16,2            ; ⮡ࠧ  -
                                              ;  
                   cmp   byte ptr es:[di].MediaDescrip,0F8h ;⪨ ?
                   je fixed_disk   ; , ⮡ࠧ  ࠭ ᮮ饭

                                      - 11-23 -

                   @DisStr RemovableMedia_Msg ;  - ᬥ 
                   jmp   short media_size     ;  ⥯ ᤥ ࠧ
                                              ;  Kb/Mb
         fixed_disk:
                      @DisStr FixedMedia_Msg     ; ⮡ࠧ  ࠭
                                         ; ᮮ饭  ⪮ ⥫
         media_size:
                      cmp   word ptr Mbytes,0  ; 뢠  
                      je    show_kilobytes     ; ,  
                      mov   ax,word ptr Mbytes ; ,   
                      @DisNum ax,10,1,0        ; 뢮 筮 ᫠
                                               ;  
                      cmp   word ptr Mbytes2,0


         ;   ?
                      je    done_mbytes        ; ,  稫
                      @DisChr '.'              ; , 뢥 
                                               ; ࠭  
                      mov   ax,word ptr Mbytes2 ;    
                      @DisNum  ax,10,1,0       ; 뢮 筮 ᫠
                                               ;  
         done_mbytes:
                      @DisChr 'M'                ; 뢥  ࠭ ᨬ-
                                                 ;  ""  ()
                      jmp   short done_media     ;   稫
         show_Kilobytes:
                      mov  ax,word  ptr Kbytes   ;  祭 
                                                 ; 
                      @DisNum ax,10,1,0          ; 뢮 筮
                                                 ; ᫠  
                      @DisChr 'K' ; 뢥  ࠭ ᨬ "" ()

         done_media:
                      @DisStr Media_Msg        ; 뢥  ࠭ 
                                               ; ᮮ饭
                      @NewLine
         ;
                      @DisStr Cylinders_Msg     ; ⮡ࠧ  ࠭
                           ; ᯫ 饥 ⢮ 樫஢ (४)
                      cmp   word ptr Cylinders,0   ; 뫠  訡?
                      jne   show_cyl        ; , ⮡ࠧ  ࠭
                                   ; ᯫ 饥 ⢮ 樫஢
                      @DisChr '?'  ; , 뢥  ࠭ ᨬ
                                   ; " "
                      jmp   short end_cyl         ;  
         show_cyl:
                      mov   ax,word ptr Cylinders ;  祭
                      @DisNum ax,10,1,0           ;  ⮡ࠧ  
                                                  ; ࠭ ᯫ
         end_cyl:
                @NewLine
         ;
                @DisStr Heads_Msg         ; ⮡ࠧ  ࠭
                                          ; ⢮ 
                mov   ax,word ptr es:[id].Heads ;  祭 ᫮

                                      - 11-24 -
                @DisNum ax,10,1,0    ; 뢮 筮 ᫠  
                @NewLine
         ;
                @DisStr TrackSectors_Msg   ; ⮡ࠧ  ࠭
                            ; ᯫ ⢮ ᥪ஢  ४
                mov   ax,word ptr es:[di].TrackSector  ; 
                                                 ; 祭 ᫮
                @DisNum ax,10,1,0  ; 뢮 筮 ᫠  
                @NewLine
         ;
                @DisStr SectorBytes_Msg          ; ⮡ࠧ  ࠭
                                 ; ᯫ  ⢮ ⮢  ᥪ
                mov   ax,word ptr es:[id].SectorBytes ;  -
                                                      ;  ᫮
                @DisNum ax,10,1,0   ; 뢮 筮 ᫠  
                @NewLine
         ;
                @DisStr iddenSectors_Msg ; ⮡ࠧ  ࠭
                           ; ᯫ ⢮  ᥪ஢
                mov ax,word ptr es:[di].HiddenSectors ;  -
                                                        ; 祭 ᫮
                @DisNum ax,10,1,0   ; 뢮 筮 ᫠  
                cmp  word ptr es:[di].HiddenSectors,0 ;  
                                           ;   ᥪ?
                je    hidden_done          ; ,  稫
                @DisStr PartitionInfo_Msg  ; ,  -
                                           ;   ࠧ
         hidden_done:
               @NewLine
         ;
               @DisStr TotalSectors_Msg     ; ⮡ࠧ  ࠭
                      ; ᯫ 饥  ⢮  ᥪ஢  ᪠
               mov   ax,word ptr es:[di].TotalSectors   ; 
                                                  ; 祭 ᫮
               @DisNum ax,10,1,0 ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr TotalBytes_Msg     ; ⮡ࠧ  ࠭
                      ; ᯫ 饥 ⢮ ⮢  ᪥
               mov   ax,word ptr TotalBytes ;   祭,
                                  ; 饥   ᫮  ...
               mov   dx,word ptr TotalBytes.2 ;   
                                            ; ॣ  AX  DX
               call  bin2dec2               ;  뢥  ࠭
                                            ; १ DX:AX
               @NewLine
         ;
               @DisStr ReservedSec_Msg    ; ⮡ࠧ  ࠭
                  ; ᯫ ⢮ १ࢨ஢ ᥪ஢
               mov   ax,word ptr es:[di].ReservedSec    ; 
                                                   ; 祭 ᫮
               @DisNum ax,10,1,0  ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr FATsectors_Msg    ;⮡ࠧ 
                               ; ࠭ ᯫ ⢮ ᥪ஢
                               ;   ⠡ FAT

                                      - 11-25 -
               mov   ax,word ptr es:[di].FATsectors ; 
                                                   ; 祭 ᫮
               @DisNum ax,10,1,0 ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr FATcopies_Msg    ; ⮡ࠧ   ࠭ ᯫ
                                        ; ⢮  ⠡ FAT
               xor   ah,ah          ;  AH
               mov   al,byte ptr es:[di].FATcopies  ; 
                                                ; 祭 
               @DisNum  ax,10,1,0 ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr TotalFATsectors_Msg  ; ⮡ࠧ  ࠭
                           ; ᯫ 饥 ⢮ ᥪ஢ 
                           ;  ⠡ FAT
               mov   ax,word ptr TotalFATSec  ;  祭 ᫮
               @DisNum ax,10,1,0    ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr DirEntries_Msg         ; ⮡ࠧ  ࠭
                   ; ᯫ ⢮ ⮢ ୥ ⠫
               mov   ax,word ptr es:[di].DirEntries ;  祭
                                                    ; ᫮
               @DisNum ax,10,1,0    ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr DirSektors_Msg       ; ⮡ࠧ   ࠭
                               ; ᯫ  饥 ⢮ ᥪ஢
                               ; ୥ ⠫
               mov   ax,word ptr DirSectors ;  祭 ᫮
               @DisNum ax,10,1,0   ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr DataSectors_Msg      ; ⮡ࠧ  ࠭
         ;            ; ᯫ 饥  ⢮  ᥪ஢ 
               mov   ax,word ptrDataSectors ;  祭 ᫮
               @DisNum ax,10,1,0   ; 뢮 筮 ᫠  
               @NewLine
         ;

               @DisStr ClusterSectors_Msg        ; ⮡ࠧ  ࠭
                             ; ᯫ ⢮ ᥪ஢    
               xor   ah,ah                       ;  AH
               mov   al,byte ptr es[di].ClusterSec ;  祭
                                                 ; 
               @DisNum  ax,10,1,0   ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr ClusterBytes_Msg          ; ⮡ࠧ  ࠭
                                ; ᯫ ⢮ ⮢   
               mov   ax,word ptr ClusterBytes ;  祭 ᫮
               @DisNum ax,10,1,0   ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr Totalclusters-Msg     ; ⮡ࠧ  ࠭
                                   ; ᯫ 饥 ⢮ ஢

                                      - 11-26 -
               mov   ax,word ptr Totalclusters ;  祭 ᫮
               @DisNum ax,10,1,0   ; 뢮 筮 ᫠  
               @NewLine
         ;
               @DisStr FATentrySize_Msg         ; ⮡ࠧ  ࠭
                         ; ᯫ ࠧ   ⠡  FAT
               xor   ah,ah                      ;  AH
               mov   al,byte ptr FATentryBits   ;  祭
                                                ; 
               @DisNum ax,10,1,0   ; 뢮 筮 ᫠  
               @DisStr Bits_Msg                ; 㪠,  祭
                                               ;   
               cmp   byte ptr FATentryBits,12  ; ।, ᪮쪮
                                               ;  ⮢
               jg   dis_two_bytes
               @DisStr SmallFAT_Msg   ;  ⠡ FAT = 1,5 
               jmp  short show_fat_done
         dis_two_bytes:
                      @DisStr LargeFAT_Msg     ;  ⠡
                                               ; FAT = 2 
         show_fat_done:
         ;
                 @NewLine
         ;
                 @DisStr DataBytes_Msg  ; ⮡ࠧ  ࠭ ᯫ
                                    ; ⢮ ⮢   ᪥
                  mov   ax,word ptr DataBytes     ;  祭
                  mov   dx,word ptr DataBytes.2   ; 饥  
                              ; ᫮     ॣ AX  DX
                  call  bin2dec2       ;  뢥   ࠭ ᯫ
                  @NewLine
         ;
                  push   es            ; ࠭ ⥪饥 祭 ES
                  mov   ax,word ptr BootSeg   ;   ᥣ
                                              ; । 
                  mov   es,ax                     ;    ES
                  call  memfree                   ; ᢮ 
                  pop   es                  ; ⠭ 祭 ES
         ;
         terminate:
                  @ExitToDOS                ;   ணࠬ
         ;
         ;************************************************************
         ;  ணࠬ
         ;************************************************************
         main   ENDP               ;   
         ;
         ;************************************************************
         ;  ⠭ ணࠬ
         ;*************************************************************
         ;
         ;+++++++++++++++++++++++++++++++++++++++++++++++++
         ; MEM_ERR_HANDLER: ⥫ 訡 । 
         ; (᢮ )  ࠧ.
         ;BX:       AX =  訡
         ;            BX = ᨬ 㯭  
         ;                 (᫨   訡  =  8)
         ;            X =  ᥣ । 

                                      - 11-27 -
         ;                 (᫨  訡 = 9)
         ;
         ;:            (  ॣ ⠭)
         ;
         ;뢠 ⠭ ணࠬ : 
         ;- - - - - - - - - - - - - - - - - - - - - - - - -
         mem_err_handler PROC  NEAR
         ;
                      cmp   ax,7     ; 饭   ࠢ騥
                                     ;     ?
                      jne   mem_error8     ; , த ஢
         .DATA
         NranshedMemErr_Msg db  "訡 । :"
                      db"ࠧ襭 ࠢ騥  .",CR,LF,"$"
         .CODE
                 @DisStr TrashedMemErr_Msg    ; ,   ᮮ饭
                 ret                          ; 
         ;
         mem_error8:
                      cmp   ax,8             ; 筮  ?
                      jne   mem_error9       ; , த ஢
         .DATA
         InsuffMemErr_Msg  db  "訡 । :"
                           db  "筮 ",CR,LF
                           db  "H訩 㯭   = $"

         .CODE
                  @DisStr InsuffMemErr_Msg   ; ,   ᮮ饭
                  @DisNum bx,10,1,0          ; 㯥
                  @NewLine           ; 뢥  ࠭  ப
                  ret                        ; 
         ;
         mem_error9:
                   cmp   ax,9      ; ࠢ    ?
                   jne   mem_err_unknown    ; , ⭠ 稭
         .DATA
         IncorrSegAddr_Msg db "ࠢ  ᥣ  "
                           db " ࠧ/᢮.",CR,LF
                           db " ᥣ = $"
         .CODE
                      @DisStr IncorrSegAddr_Msg   ; 뢥  ࠭
                                       ; ᯫ ᮮ饭  訡
                      @DisNum es,16,4  ; 뢥  ࠭ ᯫ 
                                       ; ᥣ
                      @NewLine         ; 뢥  ࠭  ப
                      ret              ; 
         ;
         mem_err_unknown:
         .DATA
         UnknownMemErr_Msg db "H⭠  訡 ।/"
                 db "/ ࠧ/᢮ .",CR,LF,"$"
         .CODE
                 @DisStr UnknownMemErr_Msg  ; 뢥  ࠭
                                            ; ᯫ ᮮ饭
                 ret
         ;
         mem_err_handler ENDP

                                      - 11-28 -
         ;
         ;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
         ; MEMALLOC: ।    ࠧ 
         ; ࠣ  (1 ࠣ = 16 ⠬).
         ;
         ;BX:       BX = ࠧ  16-⮢ ࠣ 襭
         ;                 
         ;
         ;:      "ᯥ譮", ᫨ ਧ ७ = 0  
         ;             AX =  ᥣ ।
         ;               (BX ⠭)
         ;             "",  ᫨ ਧ ७ = 1 
         ;              AX =  訡
         ;                     7 = ࠧ襭 ࠢ騥  
         ;                     8 = 筮 
         ;              BX = 訩  㯭  
         ;                    ࠣ
         ; 뢠 ⠭ ணࠬ: 
         ;- - - - - - - - - - - - - - - - - - - - - - - - - -- - -
         memalloc          PROC      NEAR
         ;
                      push  bp               ; ࠭ 㪠⥫ 
                      push  bx               ; ࠭  ॣ  BX
                      mov   bp,sp     ; 樠஢ 㪠⥫ 
         ;
                      xor   al,al     ;  AL
                      mov   ah,48h    ; 㧨 㭪 ।
                                      ; 
                      @DosCall        ; 믮 । 
                      jnc   end_memalloc     ; , ᫨  訡 
                                     ;  ᮬ ᥣ  ॣ AX
                                     ; ,   ⠭
                                     ; ਧ ७;
                      mov   word ptr [bp],bx ;  ᨬ쭮 ࠧ
                                             ; (BX)   訡  AX
         ;
         end_memalloc:
                      pop  bx         ; ⠭ ॣ BX
                      pop  bp         ; ⠭ 㪠⥫ 
                      ret
         memalloc     ENDP            ;
         ;
         ;
         ;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
         ; MEMFREE:  ᢮   : ᢮  ,
         ;          । ࠭ ⠭⭮ ணࠬ MALLOC
         ;
         ;BX:     ES =  ᥣ  ।  
         ;
         ;:   "ᯥ譮", ᫨ ਧ ७ = 0
         ;          (ES ⠭)
         ;
         ;         "",  ᫨ ਧ ७ = 1 
         ;          AX =  訡
         ;              7 = ࠧ襭 ࠢ騥  
         ;              9 = ࠢ  (ES  ⠭)
         ;

                                      - 11-29 -
         ; 뢠 ⠭ ணࠬ: 
         ;- - - - - - - - - - - - - - - - - - - - - - - - - -- - -
         memfree      PROC      NEAR
         ;
                      push   bp      ; ࠭ 㪠⥫ 
                      push   es
                      push   ax      ; ࠭ ॣ AX
                      mov    bp,sp   ; 樠஢ 㪠⥫ 
         ;
                      xor    al,al             ;  AL
                      mov    ah,49h            ; 㧨 㭪
                                               ; ᢮ 
                      @DosCall         ; 믮 ᢮ 
                      jnc    end_memfree  ; 室, ᫨  뫮 訡
                                        ; ,   ⠭
                                        ; ਧ ७
                      mov    word ptr [bp],ax  ;   訡
                                               ;( ॣ AX)
         ;
         end_memfree:
                      pop    ax         ; ⠭ ॣ AX
                      pop    es
                      pop    bp         ; ⠭  㪠⥫ 
                      ret
         ;
         memfree ENDP
         ;
         ;
         ;************************************************************
         ;  ⠭⭮ ணࠬ
         ;************************************************************
         ;
         .DATA                       ; ४祭  ᥣ 
         ;************************************************************
         ; H砫  ࠭ 
         ;************************************************************
         ;
         ; ६
         ;
         DiskDrive       db 0    ; ࠡ稩 ᪮ (砫쭮
                                 ; 祭 = ᪮  㬮砭)
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ; ⠫ ( ᫥) ६ ࠬ஢ ᪮
         ; ଠ :
         Cylinders    dw   ?   ; 饥 ⢮ 樫஢
         TotalBytes   dd   ?   ;   ᪠  
         TotalFATSec  dw   ?   ; 饥  ⢮  ᥪ஢  ⠡
                               ; FAT (  )
         DirEntBytes  dw   32  ; ᫮ ⮢   ⠫
         DirSectors   dw   ?   ; ᥪ,  ୥ ⠫
         DataSectors  dw   ?   ; 饥 ⢮ ᥪ஢  ࠭
                               ; 䠩
         ClusterBytes dw   ?   ; ⢮  ⮢    
         TotalSectors dw   ?   ; 饥 ⢮ ஢
         FATentryBits db   12  ; ⢮ ⮢   ⠡ FAT
         DataBytes    dd   ?   ; 饥 ⢮ ⮢  (
                               ; ࠭ 䠩)

                                     - 11-30 -
         Kbytes       dw   ?   ; 饥 ⢮  (ᥣ 
                               ; ᪥)
         Mbytes       dw   0   ; 饥 ⢮  (ᥣ 
                               ; ᪥)
         Mbytes2      dw   0   ;  饥 ⢮ ⥩  
         ;
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ; T⮢ ᮮ饭
         ;
         Start1_Msg   db "䨪 ଠ ᪠ 樮"
                      db   "⥬  MS-DOS"
                      db "--  1.00",CR,LF,"$"
         Start2_Msg   db "BPB = 祭, 祭  "
                      db  " 砫쭮 㧪;"
                      db "CAL = ᫥  祭",CR,LF,CR,LF
                      db "ଠ  ଠ  ᪮ $"
         ;
         OEM_Msg              db  "BPB: ଠ  :    $"
         SectorBytes_Msg      db  "BPB: ⢮ ⮢  ᥪ: $"
         ClusterSectors_Msg   db  "BPB: ⢮ ᥪ஢  "
                              db  ": $"
         ReservedSec_Msg      db  "BPB: १ࢨ஢ ᥪ:    $"
         FATcopies_Msg        db  "BPB:  ⠡ FAT:            $"
         DirEntries_Msg       db  "BPB:  ୥ ⠫:  $"
         TotalSectors_Msg     db  "BPB: 饥 ⢮ ᥪ஢ "
                              db  "᪠: $"
         MediaDescrip_Msg     db  "BPB: ⥫ ⥫:           $"
         FATsectors_Msg       db  "BPB:   ⠡ FAT "
                              db  "(1 ⠡ FAT):  $"
         TrackSectors_Msg     db  "BPB: 饥 ⢮ ᥪ஢ "
                              db  " 樫:  $"
         Heads_Msg            db  "BPB: :                      $"
         HiddenSectors_Msg    db  "BPB:   ᥪ:             $"
         ;
         TotalFATsectors_Msg  db  "CAL: 饥 ⢮ ᥪ஢ "
                              db  "⠡ FAT: $"
         DirSectors_Msg       db  "CAL:  ⠫:             $"
         Total Bytes_Msg      db  "CAL: 饥 ⢮ ⮢ "
                              db  "᪥: $"
         Cylinders_Msg        db  "CAL: 饥  ⢮ 樫஢:  $"
         DataSectors_Msg      db  "CAL: 饥 ⢮ ᥪ஢ "
                              db  ":    $"
         TotalCluaters_Msg    db  "CAL: 饥 ⢮ ஢:   $"
         ClusterBytes_Msg     db  "CAL: ⢮ ⮢  : $"
         FATentrySyze_Msg     db  "CAL:   ⠡ FAT:  $"
         DataBytes_Msg        db  "CAL: 饥 ⢮ ⮢ "
                              db  ":  $"
         ;
         FixedMedia_Msg       db  "(⪨ $"
         RemovableMedia_Msg   db  "(ᬥ $"
         Media_Msg            db  "⥫)$"
         Bits_Msg             db  "$"
         Bytes_Msg            db  "$"
         SmallFAT_Msg         db  "1,5 )$"
         LargeFAT_Msg         db  "(2 )$"
         CurrPartition_Msg    db  "( । ⥪饣 ࠧ)$"
         PartitionInfo_Msg    db  "(ଠ  ࠧ)$"

                                      - 11-31 -
         ;
         ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
         ; 饭  訡:
         NonDOSerr_Msg db "    ⠭."
                       db "⭮,    ⥬ DOS.",CR,LF,"$"
         BadDrive_Msg  db "ᨭ⠪᪠ 訡 "
                       db " ᪮  ࠧ襭.",CR,LF,"$"
         ReadError_Msg db " 訡  ⥭ ᪠."
                       db CR,LF,"$"
         UnknownErr_Msg db "⭠ 訡 - 襭."CR,LF,"$"
         ;
         ;
         ;***********************************************************
         ;   
         ;***********************************************************
                   END    main                   ;  ணࠬ

         



                          ࠧ ⪮ ᪠

                প ⪨  "䨪஢" ᪮ 
         ࠢ  樮  ⥬ MS-DOS ᨨ 2.00  ᢥ
          ଠ஢ ᪮    : ⠡ ࠧ-
          ᪠.  ࠧ ᪠ ᯮ  ᠭ
         ⮣,    ࠧ  ᥪ樨.   ⠡   ᥣ
         ᯮ  ⮫쪮  ⪨ ᪮ (ᬥ)  ﬨ 
         10   .  ࠧ ᪠ ⮨  16 ⮢
         ଠ樨,  稭饩    ᬥ饭 "⭠筮 01"
         ⭮⥫쭮 砫  砫쭮 㧪 (  ᥪ  
         ᪥).  ⠡ ࠧ ᪠ ।⠢  ⠡
         11-2.
               ⪨   ࠧ     ⥩ -
          FDISK,    砫쭮 㧪  ⠡楩 ࠧ
         ᪠  頥     ᥪ  .   ࠧ,
             ᮤন    ⠡  ࠧ  ᪠
         (  ࠭   砫쭮 㧪  ᠬ ࢮ ᥪ
         ᪥),   ⠡ ࠧ ᪠   砫쭮 -
         㧪  頥    ࢮ ᥪ ᠬ .  ⥫
          ⠪ ᮤঠ ᢮ ᮡ⢥  砫쭮 㧪 
         ⠡ ࠧ ᪠.  ⠡ ࠧ ᪠ -
           ࠧ,  ᯮ  FDISK  
         ࠧ  ᪠  ⮣   " ﭨ ࠧ"
          ⤥쭮   ⮣, ⮡  ⮡ࠦ  ⨢
          ⨢ ﭨ.



                                      - 11-32 -
                                                       11-2
                       ⠡ ࠧ ᪠
         
         饭   饭
         (-     (⭠-         ন
         筮)   筮)
         
          0          00        1   ﭨ   0 = ⨢
                                       ࠧ  80h = 砫쭮
                                                   㦠,
                                                   ⨢
          1          01        1   砫쭠    ᫮
                                       
          2          02        1 ᫮ 砫   . ਬ砭*
                                       ᥪ 
                                       樫
          4          04        1    ࠧ-  1 = DOS  12-⮢
                                       **         ⠡楩 FAT
                                                   4 = DOS  16-⮢
                                                       ⠡楩 FAT
                                                   5 = ७ DOS
          5          05        1   筠     ᫮
                                       
          6          06        1 ᫮     . ਬ砭*
                                       ᥪ  
                                       樫
          8          08        2 ᫮ 砫    ᫮****
                                       ᮫
                                       ᥪ
         12          0        2 ᫮ ⢮   ᫮****
                                       ᥪ஢
         
              *   ࠧ  ᪠ 稭   ᬥ饭
                 "⭠筮  01"  室  砫-
                  㧪 (1- ᮫ ᥪ ⪮  -
                 ).   ࠧ ᪠ ᮤন ᢥ 
                 砫 砫쭮 , 樫  ᥪ 
                 砫쭮 㧪  ⨢ .
              **  ⥫쭮 ࠧ ᯮ -
                 묨  ந⥫ﬨ   䨪樨  ⥬
                   䨪樨 ᪮ 让 ,  ࠧ-
                   ᪮쪮 ᪨ ᪮.
              ***    ७  樮  ⥬  DOS
                   ন ⮫쪮  ࠢ  樮
                   ⥬ MS-DOS ᨨ 3.30  .
              ****   ᥪ   ⮢  - -
                   ஢ 祭, ਬ塞  砫쭮/
                   筮 樫  ᥪ.
                        n                        n+1
         <><>
         Ĵ
          C  C  S  S  S  S  S  S  C  C  C  C  C  C  C  C 
         
         C-    C-                    -                     -
          訩      訩                     訩                        訩
                                                             
               ᠬ      "n" । 쬨 ⠬
               "n+1"   ࠧ  10-⮢    樫.
                ⮢  "n" ࠧ  ᥪ.

                                      - 11-33 -
              ᬮ  ,   ᥪ ⠡ FAT ᯮ ᫥-
         騬  ᫥⥫쭮 ᥪ஢  ᪥,   ய
           ᭠砫 㤨 ᥪ ⠫.       
         ᥪ஢ ⠫  ⮣,  ⮡ ,  ࠧ頥  -
         ⠫쭮  ᪠.

                                  ⠫

               ⠫ ᮤঠ ଠ    ⠫    
         䠩  ୥ ⠫ ᪠. ଠ  䠩, ᮤঠ-
           ⠫,  ࠭  䠩 ⠫,   
         ன  饭    த⥫᪨ ⠫ (୥  㣮
         ⠫).   뤠  DIR, ଠ  
         ᥪ஢ ⠫, ᫨ 뢠 ୥ ⠫,  -
           䠩 ⠫,  뢠饣 ⥪騩  ⠫.  -
            ᥪ 筮  512 ⮢  ,   
          ᫨,     ⠫   32 -
         . 饥 ⢮ ⮢  ୥ ⠫   -
         ,  ᪮쪮 ᥪ஢ ⠫  .  ਬ,  ஭
           ᪨  ᥣ  64   ୥ ⠫,   
         ६,   ஭ 40-४ ᪨  112 ⠪  -
         ⮢,  ஭ 80-४ 5,25- ᪨  224
           ୥ ⠫.
               設⢠ ⪨  ᪮ 饥 ⢮ ⮢ 
         ⠫   ⮣,   ଠ஢ .  -
         ਠ ࠧ ⪮ ᪠  ᨬ쭮 ⢮ -
         ⮢ ୥ ⠫, ஥ ᮮ⢥ ॣࠬ ⥩
         ࠧ.  饥 ⢮ ⮢ ୥ ⠫ ।-
          ᨬ쭮 ⢮  䠩,  ஥   -
         饭  ୥ ⠫.   ࠭祭, ,  -
         ࠭     ⠫.   ᪮      ⠫,
         ᮮ⢥騥 ࠧ饭  ⠫ 䠩,  ᠬ 饭
          䠩 ᠭ ⠫,    ࠭祭   -
         ⢮ 䠩, 饭  ⠫; 䠩 ᠭ ⠫
          㢥稢   .
              ଠ, ᮤঠ    ⠫ ࠧ
           ⮢,     אַ  ᢥ ⭮-
            ⠭  䠩.   㭪 11-4 
         ⠢騥   ⠫,     
         ।   .


               ﬨ    ⠫,    묨   㤥
          ,     㭪 11-4,  :     ⨯
         䠩, ਡ (ਡ ), 砫   ࠧ 䠩.


                       䠩, ⨯ 䠩  ﭨ 䠩

                ⨯ 䠩   11 ⮢,   ।⠢
          䠩,  ஬ ᮮ⢥  ⠫.   
         ᮤন ᨬ SCII.
               樮  ⥬ MS-DOS ᨨ 2.0    䠩 
          ⠫ ᥣ ⭮  䠩,  ࠭饬  ୥-
          ⠫. ᪮  ⠫  樮
         ⥬ MS-DOS 䠩,  ⠪  ᢮   ᥪ
         ⠫.  ⠫, , ᮤন ଠ  
         ⠫,   ᫥ ⫨砥    䠩.    
         ࠧ ⮩   㤨  ࠧ.

                                      - 11-34 -










                                                                 ਡ
                 < 11 ⮢ >  (1 )
                 <  䠩 ><Ē>   
                 
                  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  < Ŀ
                   0   1   2   3   4   5   6   7   8   9  10  11   >  
                 /   
                                                                      
                                                                        
                  ﭨ 䠩                                        
                    ᨬ                                      
                   䠩                                            
                                                                         
           
           
           
                   १ࢨ஢ 樮     ⠬  ६
                         c⥬ MS-DOS                 
                 < (10 ⮢) >< (4 ) >
                                                <Ă६><Ą>
               
           > <   xx xx xx xx xx xx xx xx xx xx  xx  xx   xx  xx  < Ŀ
                >  12 13 14 15 16 17 18 19 20 21  22  23   24  25   > 
               //  
           
           
                 砫      䠩
                  <(2 )><(4 )>
                Ŀ
           > <    xx    xx     xx    xx    xx    xx  
                 >   26    27     28    29    30    31  
                /

                 . 11-4.   ⠫:
            1 - 11 ⮢; 2 - ਡ (1 ); 3 -  䠩; 4 -  ⨯;
            5 - ﭨ 䠩   ᨬ  䠩; 6 - १ࢨ-
            ஢  樮 ⥬ MS-DOS (10 ⮢); 7 - ⠬ 
            ६   (4 );  8 - ६;  9 - ; 10 - 砫
             (2 ); 11 - ࠧ 䠩 (4 )










                                      - 11-35 -
              ⬥⨬ ⠪,      ࠢ  樮  ⥬
         MS-DOS ᨨ 2.0  , ᨬ쭮 ᫮ 䠩  ⮢
         ⠫,      (64, 112  224), -
         ⢥ ⮫쪮 ꥬ ୥ ⠫.  ᪮  䠩-
         , ࠧ饭  ⠫,  ⠫   ᠬ
         ⠫ "䠩",    ࠭祭  ⢮ 䠩-
         ,    ࠧ  ᪥  । , ।-
         ७  ⨯ ᪠  ଠ. ஡  -
         ⠫  ⠭ 䠩  ਬ    ⮩ .
               ࠭ 䠩  ᪮ ந室  .  -
         ࠣ ⮬   ᨬ  䠩  -
          ⠫.    㭪 11-4,    
         ⠫   㪠뢠 ﭨ 䠩,   ।⠢
           ᨬ ASCII   䠩.  ᫨  ⠫  
         ᯮ짮    ᫥  ଠ஢  ᪠,  
          ᥣ ⠭  祭 "00".   ࠧ 樮-
          ⥬ MS-DOS 㦭 ⮫쪮      -
         ⠫  ।,     ᯮ짮.  ᮧ
         䠩     ॢ頥    ᨬ  
         䠩.   䠩 ࠥ,     -
         筮 祭 "E5".  ⠫쭠 ଠ   -
         ⠫, ⭮饣  ⮬ 䠩, ⠥ ०.  
         ᬠਢ ᥪ ᪠  ᪠ ଠ樨   -
         ⠫ ⮣ 䠩,  祭     箬
          ࠧ 㦭  ⠫.
               箬,  筮,    ।⠢  ⠫쭮
           䠩     ଠ ASCII.      ᨬ
         ⭠筮 祭 "E5"   ⮬,   -
          ।⠢ ᮡ  䠩.    ⠭  -
           祭  ⮣,  ⮡ 樮 ⥬ MS-DOS ,
           ⠫ ᢮      ᥭ  -
         ଠ     䠩,  ᫨   ॡ ⥬.
          , ࠧࠡ稪 樮 ⥬ MS-DOS ।ᬮ-
          ⠪ ᯮᮡ 㤠 䠩.  ⮬,  ⥯ 
         ( 設⢥ 砥) ⠭ ⮫쪮   䠩.


                                      ਡ

               ਡ  ᮤন  ଠ   ਡ ࠧ饭
         䠩.  ਡ 㪠뢠,  樮 ⥬ MS-DOS 
         ᥡ  䠩.  ⠡ 11-3  ।  ਡ 
         ᮮ⢥騥 ⭠ 祭,      
         饭   ਡ.   ⮣  । 
         -  ਡ  ਭ 祭 "1" ,    -
         ਡ 砥 䠩.
              ⬥⨬,  䠩   祭 ᪮쪮 ਡ⮢.
         ਬ,  ᫨  䠩  祭  ਡ  "⮫쪮   ⥭"
         (⭠筮 祭 01)  "" ("⮫쪮   ⥭"
         (⭠筮 祭 02),  १饥 祭  
         ਡ 㤥 ।⠢ ᮡ 㬬  祭 ਡ⮢,
           ⭠筮 祭 03. ଠ, ᮤঠ 
          ਡ  ,         -
          䠩.  ਬ,  ⭮, ⮡  ⠫ 
         ⠭  䠩,  ਡ⮬  ண 뫮 祭 "⮫쪮
          ⥭",  ᫨ ⮫쪮   ⠥ ⠭  ࠧ-
         襭 .  筮,   ⨬  ਡ 䠩. , -
         , ,  ⠭ 䠩  ਡ⮬ "",  -
         ⨬   ਡ,  ⮬   ⨢ 砥  

                                      - 11-36 -
         ᬮ  㢨 ⮣ 䠩  뤠  DIR,  ,  ᫥-
         ⥫쭮,   ᬮ 㡥  ⮬,   䠩    ⠭.
         㣠  稭,   ன      
         ਡ 䠩, 砥   ⠭  -
         ⠫.

                                                     11-3
                       । ਡ⮢ 䠩
         --------------------------------------------------------------
               ⭠-        ਡ
                    祭
         --------------------------------------------------------------
         1-         80           । ( 樮 ⥬
                                  S-DOS ᨨ 3.0  )
         2-         40           । ( 樮 ⥬
                                  S-DOS ᨨ 3.0  )
         3-         20          ﭨ 娢: ⠭
                                   䠩 뢠  뢠
                                   ᯮ 묨 ⨫⠬
                                  ஢  ⠭ ⪮
                                  ᪠
         4-         10           ⠫: 뢠  ,
                                    ⠫ ⭮  -
                                  ⠫ "䠩"
         5-         08          ⪠ ⮬: 뢠  ,  -
                                   ⠫  ᮤন    ⮬
                                  (⮫쪮   ᨩ 2.0   -
                                  樮  ⥬  DOS);   ⠫쭮
                                     ᮤন  㦭
                                  ଠ
         6-         04          ﭨ ⥬:  ᯮ  
                                  㪠 ⥬ 䠩, ⠪, 
                                  ,   ᯮ    砫쭮
               ⭠-        ਡ
                    祭
         --------------------------------------------------------------
                                  㧪 ⥬.  砫쭮 -
                                  㧪  樮  ⥬  MS-DOS
                                  (ਬ,   䠩   IBMDOS.    
                                  IBMBIO. )    ਡ
                                  ⠭.
         7-         02          ﭨ "".  ᪫砥
                                   ଠ쭮 ᬮ ⠫
         8-         01          ﭨ "⮫쪮  ⥭":  
                                    .
         --------------------------------------------------------------

                                 砫 

              砫  ।⠢ ᮡ 2-⮢, 16-஢
          ,   ।  ᥪ ᪠,  
         䠩.   ᥪ ᪠ 뢠 ஬.  ᬮ   ,
           㭪 11-1 ࠦ ଠ஢   窨 ७
         ४  ᥪ஢, 樮 ⥬ MS-DOS  ⢨⥫쭮
         ᬠਢ     窨 ७ ஢ ᥪ஢,    -
          楫 ᥪ஢.  砫  ।⠢ ᮡ -
         室 "㪠⥫"   ᥪ  䠩,  ⠪  -

                                      - 11-37 -
         騥 㪠⥫  ᥪ ⠡ FAT.  ⠢  砫
         㪠⥫    ⠫,  樮 ⥬ MS-DOS -
          뢠 ⠫ 㪠⥫.  ᥪ  䠩 
         ᥪ  ⠡  FAT.    㤥   ᥪ ⠡
         FAT,  ᥩ ⬥⨬,  饭  砫쭮  -
               蠣  ⠭ -
           ࠧ襭 䠩.

                                    䠩

               䠩  ।⠢ 4-⮢  ᫮, 
          ண ।⠢ ᮡ      ࠧ  䠩.
         ⢥     襩  ࠧ 䠩,    -
         㥬  祭  । 窮  䠩,    ⥬
         ᠬ  । ⢠ ᥪ஢,    -
          䠩  ।,   .
              , ᫥ ⮣,  뫨 ।   -
          ⠫,   室  ᬮ७ ᥪ஢  ⠡  FAT.
         ଠ    ᥪ ।⠢ ⥫  
         ࠧ ⮣,     ࠧ襭 䠩   -
         ⠭.


                            ⠫ "."  ".."

              쪮   ᠭ  ⠫  ଠ ⢨⥫쭠
           䠩,  ࠭  ࠢ 樮 ⥬
         MS-DOS,  ᪫祭  ᯥ樠 ⨯ ⮢ ⠫
         - ⮢ "."  ".."  ⠫.   ⠫ "."  -
         ন ଠ  ⥪饬 ⠫,    ".." ᮤ-
          ଠ  த⥫᪮ ⠫  ⥪饣 ⠫. 
         ⠡  11-4 뢠 ᮤন   ⮢ -
           ⠫ "."  "..".

                                                        11-4
                ন ⮢ ⠫  "."     ".."

         --------------------------------------------------------------
                         "."  (騩) ⠫
         --------------------------------------------------------------
                               ন 
         --------------------------------------------------------------
          /⨯          = ⭠筮 祭 "2",
                         ⠫쭠  = 00
          ਡ        쪮 ﭨ ⠫ (⭠筮
                         祭 10)
          ६          ६ ᮧ
                      ᮧ
          砫        ⥪饣 ⠫
          
                   ஡ (ࠧ    த⥫-
                         ᪮ ⠫  ⮣ ⠫)
         --------------------------------------------------------------


                                      - 11-38 -
         --------------------------------------------------------------
                         ".."  (⥫᪨) ⠫
         --------------------------------------------------------------
                                ন 
         --------------------------------------------------------------
          /⨯          ன  = ⭠筮
                         祭 "2", ⠫쭠  = 00
          ਡ        쪮 ﭨ ⠫ (⭠筮
                         祭 10)
          ६          ६ ᮧ
                      ᮧ
          砫        த⥫᪮ ⠫ ⮫쪮
                  ⮣,  த⥫᪨   ୥
                         ⠫
                   ஡
         --------------------------------------------------------------

                      C ⠡ ࠧ饭 䠩 (FAT)

              , ᮤঠ騥  ⠡ FAT,  ᯮ 樮
         ⥬ MS-DOS  । ⮯    ᪥  
           䠩.   ⫨稥   樮 ⥬,
          ᥣ ᯮ  䠩  ᫥⥫쭮    ᯮ
         ᥪ  뢭,  樮 ⥬ MS-DOS  ࠧ
         䠩    䠩 ந ࠧ. ⥬, 
         ᥣ ᯮ 䠩 ᫥⥫쭮,    -
          ⮯ 䠩, , ᫥⥫쭮,  -
           䠩  .  ⠭ 䠩, ᯮ-
          뢭,   㦭  ⮫쪮   砫  .
            ⮬ ஬⪥  묨 䠩.
              ᬮ   ᪠,  뢭 ࠧ饭 䠩 
         䥪⨢,   ਬ,  䠩,  ᯮ   㣨
         䠩,  㤠      訩  ࠧ.
         ,  ᫨ ᢮襣 ᫥ 㤠 䠩   筮
          ࠧ饭  䠩,   ⮣  䠩  뤥-
          筮 뢭 ࠭⢮ ᫥  ᫥  
         㦥 ࠧ饭  ᪥ 䠩.  ᫨  ᪥ 㦥  -
            饭 䠩,   ⠥ .  
         뢠  ॠ  㤭   ᯮ짮  ᪮ 
         ࠢ⥫쭮   , ⮬  讥 ⢮
         ᢮   .  樮 ⥬ MS-DOS 
         室   ப 樮 ⥬, ᯮ-
         騥  ⪮ ᪥,  뫨 ⠪ ࠧࠡ⠭,    -
         짮 ந쭮 ࠧ饭,   ⠪  ᫥⥫쭮
           뢭  ࠧ饭.  ଠ  ᥪ ⠡ FAT
          樮 ⥬ MS-DOS 믮 .
                 ࠧ ଠ 樮 ⥬ MS
         -DOS  ᪮쪮 䠩    ,  ଠ, -
         饭  ᥪ ⠡ FAT, ᯮ 樮 -
          MS-DOS  ।    䠩. 饭 
         䠩   १ ⠡ FAT   "".   ᥣ
         ,   ࠩ ,   ,  , ᫨  筮
         ,   ᪮쪮 ஢.    ⢨⥫쭮
           ।  ⮨    ᥪ 
          ஭  ᪠   ᥪ஢   -
         ஭  ᪠.   ⪨ ᪨ ᯮ -
         ,       ⮨  쬨 ᥪ஢.   
         ࠭   ᪥ ( ᪫祭       

                                      - 11-39 -
         砫쭮 㧪 ⠡ FAT.  㭪 11-5  11-6 ,
           -  ஭ 4--४  ᪨  8-ᥪ
          9-ᥪ ଠ⠬ ⮡ࠦ   ஢.  㭪
         11-7    ⮡ࠦ 80-४  ᪠ 襭
         ⭮ .

          ଠ ᯮ 쬨        ଠ ᯮ 
              ᥪ஢  ४                 ᥪ஢  ४
         Ŀ Ŀ
          \    ४                      \    ४                    
            \                              \                          
              \  0         1  2 ... 39       \  0         1  2 ... 39 
         CĴ CĴ
            1   砫쭠 3 11            1   砫쭠 2 11        
                㧪       ...  .         㧪       ...  . 
            2   FAT 1     4 12 ...  .     2   FAT 1     3 12 ...  . 
            3   FAT 2     5 13 ... 309    3   FAT 1     4 13 ... 346
            4   ⠫   6 14 ... 310    4   FAT 2     5 14 ... 347
            5   ⠫   7 15 ... 311    5   FAT 2     6 15 ... 348
            6   ⠫   8 16 ... 312    6   ⠫   7 16 ... 349
            7   ⠫   9  . ... 313    7   ⠫   8 17 ... 350
            8   2        10  . ... 314    8   ⠫   9  . ... 351
             9   ⠫  10  . ... 352
                                          

              . 11-5. ᫮  ஢  ஭ 40-४
                          ᪠

              ⬥⨬,   । 㭪 ᥪ ⠡ FAT 뫨
         ஭㬥஢  ஬ 1,   ஬ 2.  祭 ⠪
         ⮬,  ࠧࠡ稪 䠩 樮 ⥬ MS-DOS -
         ࢨ஢   ࠧ  ᥪ஢ ⠡ FAT,  祬 ⢨-
         ⥫쭮 ॡ  ⮡ࠦ ᪠.   稭 ⠪
         ࠧࠡ⪨ 뫮  ।ᬮ ࠭⢮  ७
         ⠡ FAT  㢥祭   ᪮.   -
         樮 ⥬ MS-DOS   3.3,  , ⥫ -
          ᥪ஢ ᯮ  ࠧ饭 筮  ࢮ -
          ᥪ஢ ⠡ FAT.   稨  ஢ ⠡
         FAT   ᯮ  , ᫨   - 稭
         㤥  ࠧ襭  .  ⠭ ࠧ襭 ⠡
         FAT   祭 㤭 .  ⠭ 䠩, -
         ,  筮 易  ⮫쪮  ࢮ ⠡ FAT.
                 ᪥   ᮮ⢥騩    
         ⠡ FAT.   ⠡ FAT,   ᮮ⢥ ࢮ
          䠩,  ᮤন  ᫥饣  ⮣  ⥬
          䠩. ᫨ ᬮ   ⠡ FAT ᮮ⢥騩
         ⮬ "᫥饬" ,  㦨,    ⨣
          䠩,   ᮤন    , -
         ⮣ 䠩.  ࠧ,  ⠡ FAT  ⢨⥫-
          ᮤঠ 㪠⥫  ,   䠩,  ⠪  
         ᫥騥  ⠡ FAT,   ᮮ⢥ -
         ⥫ ࠬ,   ⥬  䠩.  ᪮ 饥 ᫮
         ⮢   ᥪ ⠡ FAT ॢ蠥 饥 ᫮ ஢
           ᪥      ⮡ࠦ  ⮣,  
         ᨬ쭮 ᯮ짮   .


                                      - 11-40 -
                              ଠ ᯮ 쬨
                                  ᥪ஢  ४
                        Ŀ
                               \   ४                      
                                 \                           
                                   \   0         1  2 ... 39 
                              C Ĵ
                                 1    砫쭠 5 13        
                                      㧪       ...  . 
                                 2    FAT 1                 
                                 3    FAT 2     6 14 ...  . 
                         ஭ 4    ⠫               
                            0    5    ⠫   7 15 ... 311
                                 6    ⠫               
                                 7    ⠫   8 16 ... 312
                         ________8    ⠫               
                                 1    ⠫   9 16 ... 313
             砫              2    ⠫               
             ᥪ஢ > 3         2   10 18 ... 314
                           4                          
                        ஭  5         3   11 19 ... 315
                           1     6                          
                                 7         4   12  . ... 316  
                                 8                 .        
                        

                            ଠ ᯮ 
                                ᥪ஢  ४
                        Ŀ
                               \   ४                      
                                 \                           
                                   \   0         1  2 ... 39 
                              C Ĵ
                                 1    砫쭠 5 14        
                                      㧪       ...  . 
                                 2    FAT 1                 
                                 3    FAT 1     6 15 ...  . 
                         ஭ 4    FAT 2                 
                            0    5    FAT 2     7 16 ... 349
                                 6    ⠫               
                                 7    ⠫   8 17 ... 350
                                 8    ⠫               
                         ________9    ⠫   9 18 ... 351
                                 1    ⠫               
                                 2    ⠫  10 19 ... 352
             砫              3    ⠫               
             ᥪ஢ > 4         2   11 20 ... 353
                           5                          
                         ஭ 6         3   12  . ... 354
                            1    7                             
                                 8         4   13  . ... 355
                                 9                          
                        

              .  11-6. ᫮ ஢  ஭ 40-४
                                    ᪠

                                      - 11-41 -
               㭪 11-5, 11-6  11-7 㬥 ஢ 稭
            2.    ⮬,    㬥 ⠪,
           ⠡ FAT (       
         ⠡ FAT ),   0  1 ⠡ FAT ᯮ  -
          楫.   ᮡ࠭ १ࢨ஢ ⮢ ⠡ FAT
          㬥,  稭  ᫠ 2  த  ᫥-
           ⠡ FAT  1.  ᪮  ᥪ  砫쭮
         㧪,  ⠡  FAT    ⠫    ஢ ஢,
          N2 ᮤন  ᥪ (ᥪ)   ᪥. -
           㭪 11-8  ,    饭 
         ⠬ ⠡ FAT.

                            ଠ ᯮ ⭠
                                  ᥪ஢  ४
                        Ŀ
                               \   ४                             
                                 \                                  
                                   \   0         1    2   ...    79 
                              C Ĵ
                                 1    砫쭠 3   33   ...     . 
                                      㧪      34             
                                 2    FAT 1     4   35   ...     . 
                                 3    FAT 1     5   36         1166
                                 4    FAT 1     6   37   ...   1167
                                 5    FAT 1     7   38         1168
                                 6    FAT 1     8   39   ...   1169
                         ஭ 7    FAT 1     9   40         1170
                            0    8    FAT 1    10    .   ...   1171
                                 9    FAT 2    11    .         1172
                                10    FAT 2    12    .   ...   1173
                                11    FAT 2    13    .         1174
                                12    FAT 2    14    .   ...   1175
                                13    FAT 2    15    .         1176
                                14    FAT 2    16    .         1177
                         _______15    FAT 2    17    .   ...   1178
                                 1    ⠫  18    .         1179
                                 2    ⠫  19    .   ...   1180
                                 3    ⠫  20    .         1181
                                 4    ⠫  21    .   ...   1182
                                 5    ⠫  22    .         1183
                                 6    ⠫  23    .   ...   1184
                                 7    ⠫  24    .         1185
                         ஭ 8    ⠫  25    .   ...   1186
                            1    9    ⠫  26    .         1187
                                10    ⠫  27    .   ...   1188
                                11    ⠫  28    .         1189
                                12    ⠫  29    .   ...   1190
                                13    ⠫  30    .         1191
             砫             14    ⠫  31    .   ...   1192
             ᥪ஢ >15    2        32    .         1193
                  

              .  11-7.  ᫮  ஢  ஭ 80-४-
           ᪠



                                      - 11-42 -
                        ஢ ⮢ ⠡ FAT

              祭   0 ⠡ FAT ᥣ 㪠뢠  ଠ
         ᪠.   1 ᥣ ⠭  祭 (F)FFF, ⮡ -
         㯠  ஫ ॣࠤ  ⥫  ⮬ 0    -
         ⮬ 2.   ⠡ 11-5 ।⠢ ࠧ 祭  
         ଠ,  ন 樮 ⥬ MS-DOS  ᨩ  
         1.0  3.3.
               ᫥騥  ⠡ FAT ᯮ   ⮡-
         ࠦ ᪠.     ⮢ ᮤন   
         ⨯ ଠ樨:
              - ᫥騩    䠩;
              - થ  䠩;
              - ᯮ짮 ;
              - ,  祭,  १ࢨ஢,  ᯮ祭-
                .
               ⠡ 11-6 ᫥ 祭,    -
         ⢮   ⠡ FAT.

                                      - 43 -
          ⠫  䠩 1.    ⠫  䠩 2.
         砫   㪠-   砫   㪠-
         뢠   2 ⠡     뢠   5 ⠡
         FAT (ࢠ  䠩 -   FAT (ࢠ  䠩 -
            2)                5)
             ĳ
                     Ŀ
                    0  FFD   ஭     9
                      ᥪࠬ  ४
                     Ŀ
                    1  FFF    (⥫)
                     
                     Ŀ
                 >2  003      䠩 1 㪠뢠Ŀ
                         / 3               
                 

                 

                     Ŀ
                 >3  004      䠩 1 㪠뢠Ŀ
                         / 4               
                 
                     Ŀ
                 >4  008      䠩 1 㪠뢠Ŀ
                         / 8                 
                      Ŀ                                       
             >5  006      䠩 2 㪠뢠Ŀ 
                          /  6               
                   
                      Ŀ                                       
                  >6  007      䠩 2 㪠뢠Ŀ 
                          /  7               
                   
                      Ŀ                                       
                  >7  FFF     䠩 2                        
                                                              
                  
                      Ŀ
                  >8  009      䠩 1 㪠뢠Ŀ
                          / 9               
                  
                      Ŀ
                  >9  010      䠩 1 㪠뢠Ŀ
                          / 10              
                  
                      Ŀ
                  >10  FFF     䠩 1
                       
                       Ŀ
               11 - 13   000     ᯮ - ।,
                             ᢮ 

                            . 11-8. ਬ ⠡ FAT

                                      - 11-44 -


                                                       11-5
              祭 ⨯ ᪠   0 ⠡ FAT
         ---------------------------------------------------------------
           0                   ᪠  ଠ
         (⭠-
         筮 祭)
         ---------------------------------------------------------------
         (F)FF0           3,5-, 1,44-⭠ ᪥ (
                          ᨩ 3.30   樮 ⥬ MS-DOS
                          
                          㣮 । ଠ ( ᨩ 3.30
                            樮 ⥬ MS-DOS)
         (F)FF8           ⪨  (⪨ ᪨  ᮭ
                            IBM  PC, IBM PC-XT, IBM PC-AT 
                          樮 ⥬ MS-DOS  ᨨ  2.0  
                          )
         (F)FF9            ⥫. 筮  5,25-,
                          1,2  ଠ  ᪮ 襭
                            (  樮  ⥬  MS-DOS
                          ᨨ 3.0  )
                          
                          3,5  -  , 720  ଠ 
                          ᪮ ( 樮 ⥬ MS-DOS -
                          ᨨ 3.20  )
         (F)FFC            ⥫. 筮 ᯮ 
                          5,25- , 180-    ᪮
                          ( 樮 ⥬ MS-DOS ᨨ 2.00
                           )
         (F)FFD*            ⥫. 筮  ᯮ  
                          5,25-  ,  360-  ᪮
                          ( 樮 ⥬ MS-DOS ᨨ 2.00
                           )
                          
                          8-  501-  (஭   
                          ୮ ⭮ )  ᪮
         (F)FFE*           ⥫. 筮 ᯮ 
                          5,25-  ,  160-  ᪮
                          ( 樮 ⥬ MS-DOS ᨨ 1.00
                           )
                          
                          8-  250-  (஭   
                          ୮ ⭮ )  ᪮
                          
                          8- 1,232- (஭
                           㤢 ⭮ )  ᪮
         (F)FFF            ⥫. 筮 ᯮ 
                          5,25-  ,  320-  ᪮

                                      - 11-45 -
                          ( 樮 ⥬ MS-DOS ᨨ 1.10
                           )
         ---------------------------------------------------------------

              ਬ砭.   ॠ樨  樮  ⥬
              ----------  MS-DOS ন ࠡ 8- ᪮
               ணࠬ ࠧ⪮. ᬮ    ,    
              ࠩ  ன   ᠭ  ⭮
              ⨯ ᪮ 8- ᪮, ᯮ㥬  -
              , "த" 樮 ⥬  MS-DOS  ন
                ଠ  8-  ୮ ⭮ 
              (128 ⮢  ᥪ),  ஭ ଠ  -
              ୮ ⭮ ,   ஭ ଠ  
              㤢  ⭮    (1024  ⮢  ᥪ).
              ⢥ ࠧ   ஭ ଠ-
               ୮ ⭮ 砥  ⮬,   
               १ࢨ஢ ᥪ   砫쭮  -
              㧪,  ன   ⠪ ᥪ. 祭 -
              ।  ଠ  ᪠     0 ⠡ FAT 
              ଠ  ୮ ⭮    १ࢨ-
              ஢ ᥪ஬   ଠ   ⭮ -
                 ࠢ  ⭠筮  祭
              FFE.    ଠ  ୮ ⭮    -
               १ࢨ஢묨 ᥪࠬ ⠪ 祭  -
                祭  FFD. ᯮ짮 ⠪  祭 
              5,25-  ᪮   ஡, -
                樮 ⥬ MS-DOS १  ᢮  ࠩ
              ன,  㧭,      頥  8-
              ᪠.  ⮣,  ,  ⮡  樮  ⥬
              MS-DOS  ⫨ 8- ଠ  㣨, -
                 砥 祭 FFE   0 ⠡ FAT,
               ᭠砫 뢠 , ।,      
                ⭮  ,  ⮬ ⠥ 
               ⬥ ୮ ⭮   ࢮ  ᥪ.
              ᫨  ந室 訡 樮 ⥬ த-
               ⥭ ᪠, 㦥 ,    ଠ ୮
              ⭮. ᫨  ⥭ ந室 訡, 樮-
               ⥬ MS-DOS ।,    ଠ-
              ஢   㤢 ⭮ .  樮
              ⥬ 頥  砫 뢠 ᪠ 㦥 -
              ஥  ⥭ ᪠  ଠ     ⭮
              . ᫨  ⥬  ᪮  8-
                ᪮,    㪮⢥   樮 ⥬
              MS-DOS, ਫ  襩 ⭮ ॠ樨 -
              樮 ⥬ MS-DOS   室 孨-
              ᪠ ଠ  ଠ 8- ᪮.


                 ⠡ 11-5  11-6,     ⠡  FAT
         ᮤঠ  ஢,  ஢  ⭠-
          .  ,   ⠡ FAT ᮤন  12-
         ⮢,  16-⮢ 祭.  ᪨, ᮤঠ騥 4085 
          ஢ (設⢮  ᪮  㣨 ᬥ  -
         ⥫) ᯮ 12-⮢  ⠡ FAT,    ६,
          ᪨, 騥  4085 ஢ (設⢮ ⪨ -
               ᬥ  ᪨) ᯮ 16-⮢ 
         ⠡ FAT.

                                      - 11-46 -

                                                      11-6
                祭  ⮢ ⠡ FAT, ࠢ騥
                        ࠧ饭 䠩
         -------------------------------------------------------------
         ⭠筮
         祭          祭
         ⠡ FAT
         -------------------------------------------------------------
         (0)000            ᯮ  㯥 
                         ࠧ饭  䠩
          (F)FF0      १ࢨ஢  (㯥 
         (F)FF6          筮 ࠭ 䠩)
          (F)FF7         祭,  ᯮ祭,
                         樮 ⥬ MS-DOS   ᯮ-
                          ࠭ 䠩.
          (F)FF8      ᫥ ,  䠩
         (F)FFF
         (X)XXX           㣮 祭 㪠뢠  -
                           楯, ।饩 冷  ࠧ饭
                         䠩
         -------------------------------------------------------------

              祬   ࠧ ଠ ⠡ FAT?    ⮣,
           뫠  প ⪨ ᪮  ࠢ -
         樮 ⥬ MS-DOS ( 2.0 樮  ⥬ MS-DOS),
         ࠧࠡ稪 樮 ⥬ MS-DOS ࠫ ஢
         ࠧ ,  室  ࠧ饭 ⠡ FAT. ᪮
         ᨬ ࠧ ஢   ᪮  ᫠ 4085
         (2847 ஢  1,44  3,5- ᪠),  ᪮-
           ࠭⢮ 㤥  ᭮,  ᫨  ᯮ짮-
          16-⮢  ⠡ FAT,  ᨬ쭮 ⢮
         ஢,  ஥   ⮡ࠦ  8-⮢ 
         㤥 ࠢ 255,    ⢥砥  ॡ  ᯮ짮
         .  ⮬  ⮣,  ⮡ ஢ 祭 ⮢
         ⠡ FAT,  ᭠砫 㦭 । 饥 ⢮ ஢
          ᪥.
                    ࠡ⪠ 12-⮢ ⮢ ⠡ FAT

              奬 樮 ⥬ MS-DOS ࠧ饭 ᥫ,  
         1,5   ,   ⠡ FAT   ᪠ 
          ࠭.     ,    樮  ⥬
         MS-DOS  뫠  ஥஢   楫 ண ஢ 
         ⮢. ᮡ,  樮 ⥬ MS-DOS ࠭ -
            ⠡ FAT,  砥  ஢ ⮢ ⠡
         FAT ࠬ,     1,5-⮢  ꥤ  -
          3-⮢ .  ᫨  ⨬ ।  
           2 ⠡ FAT,  ⠪  ᬮ   3
         ⠡ FAT. ᫨  ⨬ ᬮ     -
          3 ⠡ FAT,       ᬮ  -
          2 ⠡ FAT.   4  5 ⠡ FAT  ⮦ ᤢ-
         ,     6  7,  8  9  ⠪ .    㭪  11-9
         ,  ந室 ஢ ஢  ஢  -
          ⮢ ⠡ FAT  ᬮ ⫠稪  DEBUG  ஢
         ⠪,   ।⠢.
               㭪 11-10 ,   ந室 ஢ -
         ஢  ஢   ⮢ ⠡ FAT.

                                      - 11-47 -
              ᫨     ⮫쪮  , 祬
             設   ࢮ  ⠢-
            襩  ண ?  奬 ⠭-
          ࠡ⠥ ॥,  設 ᠬ    -
          ଠ.      㦥    ⠢  
         ⮫쪮 ⮣,   짮⥫ ⠥ ⠡ FAT १ ⫠-
         稪 DEBUG.
               ஢  ଠ樨  12-⮢  ⠡
         FAT  㬠   ணࠬ 㦭  짮  ।⠢-
           ᫥⥫쭮 ⢨:  1.   -
          ⠡ FAT    1,5
            ⮢ (᭠砫 㬭 ᫮  3,  ⮬  १
             2).
         2. ᯮ १  ⢥ ᬥ饭  ⠡ FAT,  㪠-
            뢠騩  ,  ࠦ騩 ⮫쪮    ᯮ짮訩
            .    ᮤন  ᫥饣 , -
             ⥬  䠩.
         3. 㧨 ᫮ (2-⮢ ᫮),  ᯮ  ⨬ ᬥ-
            饭,  ॣ
         4.     ॣ  室  ⭠ .
            ᪮  㦭 ⮫쪮    姭筮 
            ⠡  FAT,  ᫥ ।,     
            ⠡ FAT    ᫮.
                             
                         ᯮ
                         /          \
                  /Ŀ     \Ŀ
              /                \             ன
              0  1  2  3         0  4  5  6   
                                     
                       
                       Ŀ      
                              
                        Ŀ
                                   ன
                  2  3  6       1  4  5 
             ⠡ FAT⠡ FAT
                                      
                   塠⮢  ⮢ ⠡ FAT
              . 11-9. ஢  ஢    ஢   
                         12-⮢ ⮢ ⠡ FAT

                        Ŀ     Ŀ
                                             ன
                  0  2  3         0  0  0   
             ⠡ FAT                     ⠡ FAT
                             
                              Ŀ
                       ĳ      
                  Ŀ        Ŀ
                                          ன
              0  0  0  2            0  0  0  3   
            \                   /             
                  \        /
                         \             /
                          ᯮ
              . 11-10. ஢  12-⮢ ⮢
         ⠡ FAT    

                                      - 11-48 -

         5. ᫨   ।⠢  ᫮,  ॣ ᫥-
             ࠭  訥  ⥬ 믮 樨 -
            ᪮ ᫮ ""  ᬥ饭 0FFF.  ᫨  
            ।⠢    ᫮,  ᫥  ࠭  訥
             ⥬ ᤢ ॣ ࠢ        
            SHR.
         6. ᫨ १騥   ।⠢ ᮡ ᫮   FF8
             FFF,   ,    ⨣  䠩.  ⨢
            砥    ।⠢ ᮡ  ᫥饣 -
            , ⮣ ⥬  䠩.


                    ࠡ⪠ 16-⮢ ⮢ ⠡ FAT

                ࠬ ஢  ⠬ ⠡ FAT  -
         ,   ᯮ 126-⮢  ⠡ FAT, -
         ⥫쭮 砥  ࠢ  ࠡ⮩,  ன ᯮ
         12-⮢  ⠡ FAT,  ⮬    ⠡
         FAT  ஢  ࠭ ᫮,    ,    
         ⠡ FAT  뢠  뢠,   楫 
         ᫮.   ⮬  㦭   ᥤ  ⠡
         FAT.
               㭪 11-9 ,  ந室 ஢ ஢
           ஢   ⮢ ⠡ FAT  ᬮ ⫠-
         稪 DEBUG ஢ ⠪,   ।⠢.
               㭪 11-10 ,   ந室 ஢ -
         ஢  ஢   ⮢ ⠡ FAT.
               ஢  ଠ樨  12-⮢  ⠡
         FAT  㬠   ணࠬ 㦭  짮  ।⠢-
           ᫥⥫쭮 ⢨:
              1.  砫  䠩   ⠫
              2.  ᯮ㥬    2 (;  1 ᫮-
                 ).
              3. ᯮ  १  ⢥ ᬥ饭  ⠡ FAT,
                 㪠뢠騩  ,  ࠦ騩 ⮫쪮   ᯮ짮-
                 訩 .    ᮤন  ᫥饣
                 ,  ⥬  䠩.
              4. 㧨 ᫮ (2-⮢ ᫮),  ᯮ  ⨬
                 ᬥ饭,  ॣ
              5. ᫨ १騥   ।⠢ ᮡ ᫮
                  FFF8  FFFF,  ,   ⨣  䠩.
                   ⨢  砥     ।⠢ ᮡ
                  ᫥饣 , ⮣ ⥬  䠩.


                   ८ࠧ ஢  ᪨ ᥪ

              ᫨   ணࠬ,  㤥   
         ࠭   ᪥,  ,  ⠪ ।⢠ -
          ⥬ MS-DOS,  뢠 "int 25h" (᮫⭮ -

                                      - 11-49 -
           ᪠)   뢠  "int  26h"  (᮫⭠    
         ),  ⠪ ணࠬ-⫠稪 DEBUG, ॡ, ⮡  㪠-
           ᪨ ᥪ஢. ᬮ  ,   -
             ᪠ (.㭪 11-2  11-3) 㪠뢠 
         ᥪ ᪠,  ஭ 0, ஦ 0, ᥪ 1,  ᥪ 
         ⢨⥫쭮 ࠢ ᪮ ᥪ 0.  ᫥騥
         ᪨ ᥪ ।⠢ ᮡ  ᫥⥫  ᬥ饭
           0.   ࠧ,  ᪨ ᥪ 1 㤥 ।⠢,
          ஭ 0,   ஦ 0, ᥪ 2,  ᪨ ᥪ 2 㤥
         ।⠢,   ஭ 0,  ஦ 0,  ᥪ 3.  ᪮
           ⠡ FAT, ᮣ᭮ १⠬, 祭 -
          믮 㪠   ⢨,  ᥣ ᮧ 
         , ᫥  ⢨  ,  㦭 -
         ࠧ뢠     ᪮ ᥪ:
              1.  2   .
              2.  祭 १  ⢮ ஢, -
                 㥬  , ᫥騬 ࠧ:
                 .    ஭  ଠ⮢    ᪮  
                     ஭ 80-४, 5,25- ଠ-
                      ᪠ 襭 ⭮  ந 㬭-
                      1.
                 .   ஭ 40-४, 5,25- -
                    ⮢ ᪮ 襭  ⭮    ந
                    㬭  2.
                 .  ஭ 8-   ᪮ 襭
                    ⭮  ந 㬭  4.
                 .  ⪨ ᪮ ᫥ ᯮ짮    -
                     襯ਢ 祭  㣮 ᫮, -
                    饥  ଠ ᪠.
              3.   १     ᪮ ᥪ 砫
                  ࠭ .

              ਬ ᮮ⢥ ᫥⥫쭮 ⢨   -
         쭮 浪,   ⥯  ३   ⠫ 
          ⠡ FAT,    ,      ᪮
         ᥪ.  ᫨  ⠪ ।⢮,  㦭 樮 -
         ⥬ MS-DOS ?!    ᠬ  뢠 䠩 ᥪ  ᥪ-
         ஬ !



                          楤 ⠭

              ᫨ 䠩, 室騩  ᪥,  - ࠧ ࠧ-
         襭  ०,    ᭮ ᯮᮡ  ࠢ-
         .  ᯮᮡ 砥  ᯮ짮   ஥-
          । 樮 ⥬ MS-DOS :  ணࠬ  CHKDSK  
         ணࠬ  RECOVER.   ணࠬ    ஢ -
         ०  ᪠  ⮣,  ⮡  ⠭ 
           ࠧ襭 䠩.
              ன ᯮᮡ 砥  ᯮ짮  ணࠬ  DEBUG,
                㣮  楫 ⠭-
          ࠧ襭  ⮣ 䠩.  ᮦ, ணࠬ DEBUG
         ।   ᫨誮 "⥫㠫"   ⨦ -
         襩 楫,     "᫥ ᮫". 宦
           ᯮᮡ 砥  ᠭ 襩 ᮡ⢥ ணࠬ-
          ⠭,  ⠪,   ணࠬ RESCUE,  ।⠢

                                      - 11-50 -
           ⮩ .  ଠ, 室  ।饬 ࠧ,
          ஢ ⠫ ᪠  ⠡ FAT  ⢥-
            ᠭ ᮡ⢥ ணࠬ ⠭.
              ᫥   㤮 ᯮᮡ 砥   ᯮ짮-
            㦥  ⮢ ணࠬ - ⨫ ⠪, 
         "Norton-⨫"  "Ultra-⨫".  ⨫  騪 
         㬥⠬,     ।ᬮ७   ᫥-
           ᯮᮡ,   ஢ ⠡ FAT, ࠢ
         ० 䠩  ⠭  䠩.


                ⠭ ࠧ襭 䠩   ⨫
                               CHKDSK  RECOVER

                ᯮ ᪠  樮 -
          MS-DOS   祭 ,   䠩    
         ᪠  뢠 ࠧ襭.   ,  樮 ⥬
         ᮤন ᪮쪮 㭪権,   ⮫쪮 ਢ 
          ०  ᪠,     ⠪ ⠭-
          ,     㣨 ᯮᮡ   -
         .     ஡ ࠧ饭 䠩  ࠢ묨
         ᪠, 樮 ⥬ MS-DOS ⮬᪨  -
         ०    ᪠,  ᫨ ⥬ ⠥   .
         ᬮ  ,   樮 ⥬ MS-DOS    易⥫쭮
         㤥 筮 ᮮ   ⮬,  ந諮, , ⭥ -
         ,   ᮮ饭  訡,  㪠뢠饥  ,   
         ᪠,   ண  ⥫  뢠,  㯭.  ᫨
          砥,  ᯮ  DIR    ᬮ  ⠫
         ᪠. ᫨  DIR ,  ⠫ ࠢ, ⠭-
          䠩 (䠩),       אַ-
         : ᫥ ᯮ짮  RECOVER  䠩  䠩.
              ᫨  ⠫   ⠫, ᫥ -
           CHKDSK, ᭠砫  ࠬ஢. ⭮  -
          ᮮ饭,  饥  ⮬,   ।  ⢮
         ஢ ﭮ  ᪠,   訬 ਧ, ⮬
           㪠뢠  ,     ᭮ ᯮ짮 
         CHKDSK,     ࠧ  ࠬ஬ /F.  ࠬ ⠢
          CHKDSK 뢠  "ﭭ"     
           䠩.    CHKDSK   ⠭  -
         ﭭ    室. 㦭 ᯮ짮  CHKDSK
         ⮫쪮 ࠧ, ᪮쪮 室   ᮮ饭 "ﭭ
         ".   CHKDSK ᮧ  䠩  ࠧ    
         ᯮ짮   ⠭ ﭭ .  ᫥ ⮣,
           䠩 (䠩) ᮧ,  ᪮     ,  
         ⥬ ᬮ ⮫쪮  ᮧ  CHKDSK 䠩.
              ᫨ ⠭  ᮮ⢥  ⥪⮢ 䠩,
            䠩 ⥪⮢ ।஬  ⥪⮢ -
         ࠬ  ஢ ଠ  .  ᫨, , ⠭-
           ᮮ⢥ 䠩  ⠥ ଠ (ਬ
           ꥪ⭮   設 ),     ᯮ짮-
           ணࠬ  DEBUG   -  ⨫  ᬮ
         ଠ樨   ஢.    砥  㤨,  ᫨
             㤥 -⠪ ﭠ.   ᪠,  
         ன ࠭ ,  뫠 ० ⠪ ᨫ쭮,  
             뢠.  設⢥ 砥 ⠭
            饭  512   1024 ,  
           ଠ  ᪠ ( 512-⮢ ᥪ    

                                      - 11-51 -
         ஭  ᪮   512-⮢ ᥪ    
           ஭  ᪮).  稭 ,   ன
         樮 ⥬ MS-DOS     ⠭    ,
         砥  ⮬,  ᬠਢ  () 㦥 -
         ஢  ᮮ⢥  ⠡ FAT    -
             ᮤন  祭 (F)FF7,  㪠뢠饥  ,  
          ᯮ祭     ணࠬ    ᯮ짮
              ⥫⢠.    ஡ 
           ணࠬ DEBUG,    ⠪  ⠪ ᨫ쭮
         ०,   ணࠬ DEBUG  ᬮ  .
               ᫥饬 ࠧ   ⮬,   ᫥  ᯮ짮-
          ணࠬ DEBUG  뢠 ⥩ ᪠ ᥪ  ᥪ-
         ஬.

                         ⠭  䠩

               ,    䠩    ࠡ  ࠢ
         樮 ⥬ MS-DOS, ⮫쪮   ⠫ ⮣
         䠩 :  ᨬ    ⭠筮
         祭 E5.  祭 ᯮ,  䫠 (ਧ). 
         樮  ⥬ MS-DOS ᬠਢ ᥪ ⠫  -
         ᪠ ᢮   ࠧ饭  ⠫  ଠ樨  
          䠩, ⥬ 室  ᯮ  , 稭-
         騩   ⭠筮 祭  E5  (  ⠫
            ᯮ짮).  ⠫쭠 ଠ   ⠫
         ⠥   .  ᫨  ,  㦭 ᤥ,  
          祭 E5  祭 ࢮ ᨬ    ⮣
         䠩, 楤 ⠭  䠩 뫠  祭 -
         .   ᮦ,  樮 ⥬ MS-DOS ⥫쭮 
         䥪⨢ ࠡ⠥  ࠭ ଠ樨 饭  ᥪ
         ⠡ FAT.  ᬮ  ,   樮 ⥬ MS-DOS 
         ࠣ ଠ樨,  ࠭饩  ᥪ   -
         ,   䠩,  ⥬ ⠭  祭  000  
          ⠡ FAT,  ᮮ⢥騥 ⨬ ࠬ. 樮-
          ⥬ MS-DOS   ⮬,   - ⢥ ᯮ-
         ᮡ   ⥬  ᬮ   ᪠ ⮣ ,
            ࠧ  䠩.  ࠧ,  -
           ⠭ ⮣ 䠩   ᫮, 祬 
         ᭠砫 .   ᭮ ࠢ  ⠭
          䠩 뢠 .


                                 ᭮ ਭ樯

                ᯮᮡ  䠩.   ,  -
          ᯮ짮  ࠭ ERASE      㤠
         DEL. ,  , ந襫 ᡮ    ।⢠
          ᡮ ⠭  ६ ᥠ ।஢.  ᫥ ᬮ
         ᪠    㦨,   ।㥬  䠩   
         .
               饬  砥 䠩  ⢨⥫쭮 㤥  ( -
          ࢮ ᨬ  䠩   ⠫   ⭠-
         筮 祭 E5) ⮫쪮 ⮣,   ࠥ 
         ERASE  DEL   㣮 ணࠬ,   믮  
           㭪.  ᫨   䠩 - ࠢ 
         ।  ᡮ ⠭, 䠩, ⭮,  㤥  ⢨⥫-
          .    㤥   ᪠,  ᫨ ᯮ㥬

                                      - 11-52 -
          ணࠬ   筮 ६,  ⮡    䠩
           ࠧ.   ⮬ 砥   ᯮ짮 ணࠬ
         樮 ⥬ MS-DOS ⠭ ᪠ RECOVER  CHKDSK
          ⠭ ﭭ .

         Ŀ
                             ।०                       
               ⠭ 䠩 ࢮ,    ᤥ- 
         ,  ᮧ   ᪠   ணࠬ 
         ஢  ᪠.   ࠧ頩    䠩  
         ᪥     ,    ᤥ  ⠭- 
          ﭭ   䠩.                        
         

               ।० 祭 ,  ⮬  饭  
           , ⭮, 㤭  ⠭ 䠩
          ᤥ  .  ᭠砫   ᪠,
              ⥩ ᪠(,  ᫥-
         ⥫쭮,  ࠤ ᥡ  ﭭ  )   १
         ࠢ쭮 ⠭ 䠩.  ࠧ, ᫨  ࢮ
         ࠧ -  㤥 ,      室 ,
           ண   ᪮஢   ᭮  楤
         ⠭ 䠩.
              訬 ᯮᮡ ।,   䠩 ⢨⥫쭮 
              ᯮ짮 ணࠬ CHKDSK 
         ࠬ஢.  ᫨ 䠩 , ணࠬ CHKDSK 뢮  ࠭
         ᯫ ᮮ饭:  "ﭭ  ".   ᮮ饭
         뢮    ࠭  ᫨ ணࠬ CHKDSK 室 ࠧ  楯
         ஢,  ᠭ  ⠡  FAT,  ਬ,  ᫨  ᫥
           楯  㪠뢠   ⠡ FAT,  ஬ -
         ন થ  䠩 (祭  (F)FF8   (F)FFF. 
         ⠪ 砥,   ୮  ணࠬ CHKDSK  -
         ࠬ஬ /F  ⠭  ﭭ ஢   -
         饭   䠩, ᮧ ணࠬ CHKDSK.
                ⮬  砫   ᮧ    ᥣ
         室  ᪠   ᫮,  ⮬  ᫨
            ᪥ ⠪  㣨 ⢨⥫쭮  䠩, -
          CHKDSK /F  䠩,  ᮤঠ騩 ⠭ 
          ,  ᮤঠ饩  䠩.  ⠭ 䠩
             ஢ ⮤筮  ⭮.
              ᫥ ⮣,   ⠫  ᭮,    䠩    ⢨⥫쭮
         ,   筮   :  -,  ⠫
         ⠥ ०,   ᪫祭  ࢮ  ᨬ  
         䠩,         ⭠  祭  E5.
         -,    ᥪ    ᪠ ᯮ짮-
         訥  室  䠩,  -०  ᮤঠ    䠩.
         - ( 쬠 砫쭮!),      ⮢  ⠡
         FAT,  ᯮ짮  室  ࠦ ஢,  
         䠩, ᮤন 祭 (0)000.
               ⠭ ⮣ 䠩 ᫥ 믮 -
           蠣:
              1.  ᬮ ⮢ ⠫   ,    
                  ,   稭  ⭠筮-
                  祭 E5   00. ᬮ  ⠫ ᨬ-
                    䠩    1  10,   ஢  ,  
                  ⢨⥫쭮  䠩,     ⠭-
                 .

                                      - 11-53 -
              2. ᬮ   砫쭮  (  26  
                 27). ᯮ   砫쭮      ⢥
                 㪠⥫       ᪠, -
                 ⮣ 䠩,  ⠪   砫쭮 ᯮ㥬 -
                  ⠡ FAT.
              3. ᬮ  ࠧ 䠩 (  28   31,  ᫥
                        ⠫).   ࠧ 䠩
                   ⮬,  砥 ,  ᫨ 䠩     
                     ᪠,   ᮡ ,  ᫨
                  䠩 ࠧᠭ  ࠧ  ᪠.
              4. ।  ,  ⮣ 砫 䠩,  -
                 ਬ ᮤন ⮣ .  饬   ᨬ-
                     ASCII  "Control-Z" (⭠筮 祭
                 1).  ᫨  ,   䠩 ᮤন  ⥪  (  
                 ASCII) ,  , ᫨ 㤥 㦥   ᪮쪮 ᨬ-
                  "Control-Z",  ⠭ 䠩 㦭  ᫥騬
                 ࠧ ( ⨢ 砥 த ࠡ  蠣 5):
                 . ᫨  㦥   ᪮쪮 ᨬ
                    "Control-Z",  ,   䠩  ⮫쪮 
                    .  稭 ⠭ 䠩 ⥬ -
                      ᫠  (F)FF8  (F)FFF   ⠡
                    FAT, ᮮ⢥騩 ⮬ .
                 .   ⭠筮 祭 E5   -
                    ⠫   㦭   ᨬ  䠩 .
                 .     ᪠ 樮 ⥬ MS-DOS,
                    ᯮ  DIR  ஢ન  ⮣,    䠩
                      ᯨ᪥ 䠩 ᪠.  ன 䠩 ⥪-
                     ।஬   ⥪⮢  ஬    ⮣,
                    ⮡ 㡥,    ᮤন ⠫ ࠢ-
                    .  !   㦭  ⮬ ⠭  -
                    ஢  ᫥騥 蠣.
              5. ᫨  䠩   , ᬮ  ᫥騥
                   ⠡ FAT (᫥⥫쭮)   ,  
                    ,  ᮤঠ騩 祭 000.  -
                  ᮤন , 饣 ⠪  , 
                   ⠡ FAT.  ᫨ ᮤন    
                 ⮣ 䠩,    ⮣   த-
                  ᬮ 㣨 ⮢ ⠡ FAT   -
                   ஢   ,    ,  -
                 ⨣  䠩.  ꥬ ᬮ   ᪮쪨
                 ⮢, ᠭ  ᫥饬 蠣.
              6. ।  ࠧ 䠩,  ⮬   ⠫-
                 , ᪮쪮 ஢    䠩. ஬ ⮣,
                 ,  ,  ᫨  ⠭ ⥪⮢ 䠩 
                  ASCII,  稥   ᨬ "Control-Z"(-
                 筮 祭 A1) 㪠뢠      䠩  .
                 ⥫쭮,  頩 ⭮  蠣 5   
                 ,   ⨣ ᨬ쭮 ᫠ ஢, -
                   䠩.  ⬥砩   ,  
                 ᮤন , ⭮騥,  襬 ,  -
                   䠩.  ᫨   -   ⨫ ᨬ
                 "Control-Z",       ।,  ᪮쪮  ஢
                  ⠢ ᪮ 䠩,   ஦:  -
                 ,   ஬  ᨬ "Control-Z",   -
                     㣮  ⮣ 䠩.  ᬮ 㣨
                 ᫥騥  ⠫   䠩  ⬥-
                     ᥡ   砫 ,   ⠪ ࠧ 

                                      - 11-54 -
                 䠩.  ,       䠩 
                 ९⥭   㯠    ᫥⥫쭮 ᢮
                 ஢.
              7. ᫥  ⮣,    ᭮ ,   ,
                  㦭 䠩,    楯,   ⠪ 㤥
                 㢥७  ⮬,  諨  䠩, ன ⠡
                 FAT.  稭  ࢮ , ३  -
                     ⠡  FAT  ࠭  ᫥饣
                  ⮣ 䠩. ⥬ ३  ⮬ ᫥-
                 騩    ⠡  FAT    ࠭  ᫥饣
                 .  த 믮     ,
                    ⨣ ᫥ .    
                 ⠡ FAT    ᫮  (F)FF8  (F)FFF,
                 ⮡  ⬥   䠩.   ३  
                 ⠫,  ⭮饬  襬 䠩    
                 ᨬ   ⭠筮 祭 E5   祭 
                  ASCII  ⭠筮 ),  ஥   ⥫
                    ⢥ ࢮ ᨬ  䠩.
              8. ⠪,   ᤥ. ᫥ 饭  ᪠ -
                 樮 ⥬ MS-DOS,   DIR, ⮡ ஢-
                 ,  䠩   ⠫ ᪠. ᫨ ⠭-
                   䠩   ⥪⮢ 䠩,  ன 䠩
                 ⥪⮢ ।஬    ⥪⮢  ஬,  ⮡
                 ஢  ᮤন. ᫨  䠩 - 㣮
                 ⨯ (ਬ, 䠩, 騩 ७  .  .
                 EXE),  㧨 䠩,  ணࠬ  ஢ન , ࠡ-
                 ⠥   ࠢ쭮.

               ᫥  蠣  ,   楤
         ⠭ 䠩  쭮 אַ.   -
             襬 ᯮ殮 ணࠬ 㬥⮢,
           ⢨⥫쭮   ᬮ   ᪥   -
         ଠ樨     ᫮ ⨥.  ⬥⨬ , 
         蠣 6  7 ᮤঠ ।०   ⮣,   -
         쪮 ࠭  䠩  ९ - ᫮ -
         ⥫쭮 ᯮ  ஢. ⠭ ९-
         ⠭   㪠    ᯮᮡ      祭
         㤭     ६  ⨥.   稨 -
          ( ᥣ  讣!),  ,  ⠢ ᥡ 
         ⮤,  ६ ᬮ  䠩.
              ,    ।⠢   ⮬,    ᨫ
         ॡ    ⠭  䠩,  諮
         ६ த஢,  ᠬ  ᯮᮡ ⠭
          䠩 砥  ஢    -㡫. 
           ᥡ  ࠢ,   ஢ த  
         ࠡ    ᥣ 짮 ﬨ ਮ⥭  筮
         ணࠬ ᯥ祭,     ਣ ᪠  (-
         ).


                 ⠭  䠩  ᯮᮡ

              ᫨  襬 ᯮ殮  ⮫쪮  ணࠬ  ⫠
         DEBUG   ⠭ 䠩,    筮 ௥
          ६    ᥬ஢ ᠭ  ⮩  -
         ࠬ ஫ RESCUE,   ᮢ   -
         묨  .

                                      - 11-55 -
                  㭪樨      ணࠬ  DEBUG,
         ।⠢騥     :  L (㧪), D (⮡ࠦ),
         E (), W ().  ᫥ ⮣,    ᮧ  ᪠ 
          䠩  ,  㧨 ணࠬ DEBUG.   
         ᪠ ணࠬ DEBUG   L  㧪  
         ⮩  ᪠,    ᬮ:

             L <> <᪮> <砫 ᥪ> < ᥪ>

                砥 <> ।⠢ ᮡ 砫  
         ,     㦠 , <᪮> 砥
          ᪮ (ਬ, 0  , 1  , 2  ),  <砫-
          ᥪ>  <  ᥪ>  㪠뢠    ᪨
         ᥪ஢ (⮫쪮 ⭠ ᫠),    -
         㧨.   㧪 ᮤন  ᥪ஢ ⠫  -
         ஭ 40-४ 5,25- ᪥,  ଠ஢ 
          ᥪ஢  ४  饭  0 ᪮ ,  ᫥-
          :

              >DEBUG
              -L 0 1 5 B

              ᫥ ⮣,    ଠ 㤥 㦥,    -
         짮  D  ⮡ࠦ  ࠭ ᯫ ᮤন-
                ⤥ ⮢, ᫨ 㦭.
         ᫥ ⮣,    ⨫ 㦭   ଠ    ந
         ॡ㥬  ,     ⭮ ᠭ  
            W.  W ᯮ 筮 ⠪  ᨭ⠪-
         ,     L.  ⮢,      -
         ,     L.  㤥  ࠭⨥ ⮣,  ⮫-
          ࠢ쭠  ᪠ 㤥 ९뢠.
              ⢥ ⮬,   㦭 뢠 ଠ
          ,   ,     ᨬ -
          ⮣ 䠩  ⭮饬   䠩   ⠫-
         ,      ᮤন ⮢ ⠡ FAT,
         ᮮ⢥饩 ⮬ 䠩.   祭 ᮤন ஢,
          ॠ 䠩,    易⥫쭮 㦭 뢠 -
         ଠ ⭮  ,  ᫨ ⮫쪮   ந -
         ᫮ ࠡ  ࠢ,    믮. -
          ஡ ଠ  ᯮ짮 ணࠬ ⫠ DEBUG
                㪮⢥ 짮⥫  樮-
          ⥬ MS-DOS (  筮 㪮⢥  襩  -
         ⭮ ⥬).

                      ᯮ짮 ணࠬ ஫ RESCUE

              ணࠬ, ᠭ ⨭ 11-4,  祭   ᯮ-
         . ᫥   RESCUE   ⮣ 䠩.
          RESCUE ॡ  ⮫쪮  䠩,   ,  -
           㬮砭 ᪮  ⠫,  ᮤঠ騥  䠩,
           ⠭  CHDIR ( ᮪饭 -  CD)  
         ᪠  ணࠬ  RESCUE.  騩  ࠭ 䠩  
         䠩  ⨯: , , ⥬, 㯭 ⮫쪮
          ⥭  ᯮ  ⠫. ᫨  ⠭-
          䠩, 室騩  ⠫,  ⮦  , ,
         ᫨   ப஫஢  ॢ ⠫, ᯮ-

                                      - 11-56 -
           ⮣ ⠫,      ᭠砫  ⠭
          ⠫  , ᯮ  RESCUE; ᮧ -
          ⠫    㬮砭 ⠫ (ᯮ 
         CHDIR  CD)  ⥬  ⠭  䠩 (䠩) 
         ⠫, ᯮ ணࠬ RESCUE.
              ᫨   䠩      ⠫ (୥ ⠫ 
         ⠫), 㤥 ந ⪠ ஢ ⠭
         䠩 ⥬    ଠ樨  ⠡ FAT.  ᫨ 䠩
           ,  ,  ᫨ 뫮 㦥,     㤥, 
         ࠭ ᯫ  ᮮ饭  ⮬.   﫮 ࠭,
          㯠,  室騩 १ ⠡ FAT    䠩,
             ᫮.  ᫨ ணࠬ RESCUE  ᬮ  
         ࠧ饭 䠩 (     ᫮  ९⥭    ⥬
         㯠  㣮 䠩) 믮 ணࠬ 蠥  -
          ଠ  뢠  .   䠪஬  ࠡ
         ணࠬ  ,    㤥 뢠  ଠ-
              ,   ஡, 易  䠩, 
          ࠧ襭.  ணࠬ 蠥  ᢮  ⥬ -
         뢠  ᥪ஢ ⠫  ⠡ FAT   ,    
         믮  䨪樨 ⮢ ⠫ 䠩   ⠡-
          FAT.     뫨 ஢, ணࠬ RESCUE -
         뢠  ⠫   ⠡ FAT ⭮  .  ᫨ 
         ६     ஢   㤭,
         믮 ணࠬ RESCUE 蠥   ⠥  -
         .
               뫮 ⬥祭 ࠭,  ணࠬ RESCUE 뫠 ⠪ ࠧࠡ-
         ⠭,     ࠡ   ଠ⮬ ᪠,  -
         ⢥ ⠭ ᮣ襭  ଠ஢, ਭ 
         樮 ⥬ MS-DOS.  ணࠬ RESCUE ᯮ  -
             㬥  樮 ⥬ MS-DOS 㭪 32h
         (  ࠬ஢ ᪠)  祭 室  -
         ଠ樨,  饩 ଠ ᪠.   ணࠬ ⠪  ப
         ᯮ  㭪樨 ᮤঠ騥  ⥪ প  몠 
          "".  ᫨  㤥 ࠨ    ணࠬ
          ࠡ   㣮 몥   㣨 ஬,  -
            ᠬ  騥 祭   㭪-
         権.
              ணࠬ RESCUE ७ ᤥ 祭 ⮩,     
            ⮣,  ⮡  ᮮ⢥⢮ ஢ ⮩ -
         .    ७,   ,  -
           ணࠬ RESCUE,  ⮡ ᤥ    ப -
         㥬     .   ,         
         짮⥫  ᠬ  㪠뢠      ப   
         RESCUE ᪮  ⠫,  ᯮ 䠩    -
          ࠧ 㭨ᠫ쭮   䠩  ਬ
         ᨬ "*"  "?".  쬠     
         ।⢮  ஢ન  ⮪  ⠭ 짮⥫ 䠩,
           㦥  (   ᤥ  ࠧ㬭
         ᯮ짮  ⠭ ணࠬ).
              㣠 䨪,       ந,
         砥    ࠧ襭  ணࠬ  RESCUE ࠡ  ⪨
         ᪠,    , ॢ騥 32 ,  -
           ࠡ  ࠢ 樮 ⥬ MS-DOS ᨨ
         4.0.   ७ ࠧ ᯮ 32-⮢ 
         ᥪ஢   16-⮢ ஢ ᥪ஢,  ᯮ짮 
         ࠧ  32   .  ⮣, ⮡  -
           32-⮢묨 ⠬ ⠡ FAT, ⭮襭 ᥪ/-

                                      - 11-57 -

          㢥稢   ࠧ  ७  ࠧ  ⠪,  
         16-⮢  ⠡ FAT ⮦ ,  -०, ᯮ-
         .  ,  ᨬ ࠧ ⠡ FAT (  -
         )    㢥祭   64  ( 樮 ⥬ MS- DOS
         ᨨ 3.3)  128  ( 樮 ⥬  MS-DOS ᨨ
         4 0).  ਪ ணࠬ 樮 ⥬ MS-DOS ࠭-
            ࠧ 襭 ࠧ   奬 ⮡-
          ᥪ஢,   ᫮,  ᯮ ⮫쪮 ⠭
         䠩 㭪樨 樮 ⥬ MS-DOS  ᮫ -
           .  ᯮ짮 ᮫묨 뫪  
         뢠 25h  26h ॡ ࠧ ᮣ襭  饭 -
          ﬨ  32     ﬨ, 訬 32 -
         .  ।⠢  ⨭ த஢  ᮣ-
         襭    樮 ⥬ MS-DOS ᨨ 4.0  뢠
         25h (᮫⭮ ⥭ ᪠)  뢠 26h (᮫⭠ 
          ).
                 ணࠬ RESCUE   ॢ-
         饭  祭  ਪ ணࠬ,   ࠡ
           ⨯ ᪮ ⥫, ᨬ  ⭮ ॠ-
         樨  ᨨ 樮 ⥬ MS-DOS.


              ⨭ 11-2. ᫮ 맮 権  ᮫⭮  -
         /      (  뢠 "int 25h/int 26h") 
         ࠧ ᪠  32    ( ᨨ -
         樮 ⥬ MS-DOS)

         室 :    AL = H ᪮ (0=, 1=  ..)
                   CX = ⢮ ᥪ஢  ⥭ (뢠
                        "int 25h")      (뢠
                        "int 26h")
                   DX =  H砫 ᪨  ᥪ
                   DS:BX = A ।
         B:  ਧ ७ = 0 (ᯥ譠 ।) 
                                    = 1 ( ᯥ譠 ।)
                                     AL = K 訡
                                     AH = T 訡
         ਬ砭: B  ॣ AX 頥 祭 0207h, ᫨
                     뫠 ᤥ ⪠ ⥭    ࠧ-
                     ஬  32 

              ⨭ 11-3.  ᫮ 맮 権 ᮫⭮ ⥭/-
            ( 뢠 "int  25h/int  26h")    ࠧ
         ᪠,    32    (⮫쪮  ᨨ 4.0 樮
         ⥬ MS-DOS)

         室 :    AL = H ᪮ (0=, 1=  ..)
                   BX = ⥫  ᯨ᮪ ࠬ஢
                   CX = -1 (㪠뢠  ७
                           (> 32 ) ଠ)
         B:  ਧ ७ = 0 (ᯥ譠 ।) 
                                    = 1 ( ᯥ譠 ।)
                                     AL = K 訡
                                     AH = T 訡
         ਬ砭: POP AX ( 訡)  室.  訡

                                      - 11-58 -
                     ⠪   㪠 .

                      C ᯨ᪠ ࠬ஢:

                      rba     dd   ?  ;  ᥪ (32-⮢ 
                                      ; 砫  0)  ⥭-
                      count   dw   ?  ; ⢮ ᥪ஢ 
                                      ; ⥭-
                      buffer  dd   ?  ;  

                 ⨭ 11-4. ணࠬ ஫ RESCUE
         _________________________________________________________

         /********************************************************
             FILE:   RESCUE2.C   Rescue File Utility Version 2.00

         ७:  ஫  䠩   ⠫
                      ஫ ⮣ ⠫
                      ࠢ    ⨯  ᪮ ⥫
                      樮 ⥬ MS-DOS ( ᪨,
                      ⪨ ᪨, ᬥ )

         ஢ ஬ "" " "":
            cl /c /Zp1 /AS /GO /Ze /Ot rescue2.c

         ஢ ।஬  "":
            Link /Dosseg/MA/LI/CPAR:1/STACK:4096 rescue2,rescue2.exe,
                 rescue2.map,slibce;
            *********************************************************

            /*                     */

            #include  <stdio.h>   /* 㭪樨 printf()   */
            #include  <conio.h>   /* getch() */
            #include <dos.h>      /* intdos(),int86(),  ⠪  */
            #include  <malloc.h>  /* _fmalloc ()& malloc */
            #include <string.h>   /* memory "mem...()"   str..."*/
            #iclude   <ctype.h>   /* topper() and "...()" */
            #include  <direct.h>  /* getcwd() */

            /*                         */

            #define FALSE     0   /*  । ।祭*/
            #define TRUE      1   /*  ⮣, ⮡ ᤥ ணࠬ-*/
            #define AND       &&  /*   ⠥   ⭮*/
            #define OR        
            #define EQ        ==
            #define NE        !=
            #define LE        <=
            #define ABS_READ       0x25 /* 뢠 ⥭ ᪠ */
            #define ABS_WRITE      0x26 /* 뢠    */
           /* 㭪樨 뢠  "int 21h"  樮 ⥬ DOS:*/
            #define DFUNC_RESETDSK 0x0D /*   ᪮ */
            #define DFUNC_GETDISK  0x19 /*  ⥪騩 ᪮ */
            #define DFUNC_GETDPB   0x32 /*   ᪮ */
                                        /* ࠬ஢ */
            #define DFUNC_GETCD    0x47 /*  ⥪騩 ᪮ */

                                      - 11-59 -

              /*  ਡ⮢ 䠩 樮 ⥬ DOS: */
            #define FATR_NONE      0x00 /* ᮮ⢥ ANY */
            #define FATR_READ      0x01 /* ⮫쪮  ⥭ */
            #define FATR_HIDDEN    0x02 /*  */
            #define FATR_SYSTEM    0x04 /* 䠩 ⥬ */
            #define FATR_VOLUME    0x08 /* ⪠ ⮬ */
            #define FATR_SUBDIR    0x10 /* ⠫ */
            #define FATR_ARCHIV    0x20 /* 娢஢ 䠩 */

            #define CL_OFF      2    /*  ஬  */
                                     /*  ᫮ 2*/
            #define TENMB       20740L /* ᨬ쭮 ⢮ */
                                     /* ᥪ஢, ন */
                                     /* 12-⮢ ⠡ FAT */

            #define CHAIN_END   1    /* ᯮ  㭪樥 */
                                     /* "get_cluster ()"  */
                                     /*  祭  䠩*/
            #define FILE_END    0xfff8   /*  ⠡ FAT  */
                                         /*  䠩 */
              /* ⠭⭠ ணࠬ match()  ᮢ ⨯*/
            #define NO_MATCH    0   /*  ᮢ*/
            #define IS_MATCH    1   /* ᮢ */
            #define IS_ERASED   2   /*  묨 䠩 */
            #define IS_UNIQUE   4   /*  묨 䠩 */

            #define DNAME_SIZE  80  /* ᨬ ࠧ   */
                                    /* ⠫ */
            /*          */

            typedef unsigned int BOOL;
            typedef unsigned char BYTE;
            typedef unsigned int WORD;
            typedef unsigned long DWORD;
            typedef union {
                    BYTE far * ptr;
                    struct {
                        WORD off ;
                        WORD seg ;
                        } a;
                    } LONGPTR ;
            typedef struct dpbbuf {   /*   ᪮ - */
                                      /* ஢ */
                BYTE PhysDrive;       /*  ᪮ */
                Byte DriverUnit ;     /*  㧫  । - */
                                      /*  */
                WORD BytesSector ;    /* ⢮ ⮢  ᥪ */
                BYTE SectorsCluster ; /* ⢮ ᥪ஢  
                                      /*  1 */
                BYTE ClusterShift;    /* ᤢ  */
                WORD  Reserve;        /* ⢮ १ࢨ஢
                                      /* ᥪ஢ */
                BYTE NumberOfFATs;    /*  ⠡ FAT */
                WORD DirEntries;      /* ⢮  ⮢ ୥- */
                                      /*  ⠫ */
                WORD DataSect;        /*  ᥪ  */

                                      - 11-60 -
                WORD TotClust;        /* 饥 ⢮ ஢ */
                                      /*  1 */
                BYTE nFATsec;         /* ⢮ ᥪ஢  ⠡ */
                                      /* FAT  (1 ⠡ FAT) */
                WORD DirSect;         /*  ᥪ ⠫ */
                DWORD DevHeaderAddr;  /*   ᪮ */
                BYTE MediaByte;       /*  ⥫ ⥫ */
                BYTE DiskAccFlag;     /* ਧ 㯠   */
                DWORD NextBlockAddr;  /*  ᫥饣  ᪠ */
                } DPB;
            typedef struct dirbuf {   /*  ⠫ ᪠ */
                char  name [8];       /*  */
                char  ext  [3];       /* ७ */
                BYTE  attrib ;        /* ਡ */
                BYTE reserved [10];
                WORD time  ;          /* ६:  - */
                                      /* - ᥪ㭤 */
                WORD date ;           /* :  -  */
                WORD cluster ;        /* 砫  */
                DWORD fsize ;         /* 騩 ࠧ   */
                } DENTRY;

            /*                          * /

            DPB    far * DPBPtr ;       /* 㪠⥫  ࠬ஢ */
                                        /* ᪠ (DPB) */
            WORD   ClUnit ;             /* ⢮ ᥪ஢  */
                                        /*  ( ⠪ ࠧ */
                                        /*   ⠫) */
            WORD   ByteClust ;          /* ⢮ ⮢  */
                                        /*  */
            DWORD  TotSect ;            /* 饥 ⢮ ᥪ஢ */
                                        /*   ᪥ */
            WORD   FATSize ;            /* ⢮ ⮢  ⠡- */
                                        /*  FAT */
            WORD   far * FatAnchor ;    /*   ⠡ FAT */
            DENTRY near * DirAnchor ;   /*    ⠫ */
            DENTRY near * AltAnchor ;   /*    㣮 - */
                                        /* ⠫ */
            char   defalt_sname [] ={"*.*"};  /*  ᪠  㬮- */
                                        /* 砭 */

            /*   -AH   */

         #define diskread(d,s,c,b)   diskaccess(ABS_READ,d,s,c,b)
         #define diskwrite(d,s,c,b)   diskaccess(ABS_WRITE,d,s,c,b)

         #define sector_of(cl)   (DPBPtr->DataSect+(cl-CL_OFF)*ClUnit)
         #define cluster_of(sec) (CL_OFF+(sec-DPBPtr->DataSect)/ClUnit)
            /*    AH   */

            WORD   get_cluster ();      /*  祭  */
                                        /*  */
            void   put_cluster ();      /* ࠭ 祭  - */
                                        /*  */
            BOOL   savefile ();         /* ⠭ 䠩() */
            DENTRY near * findt ();     /* ᬮ  ⠫ */

                                      - 11-61 -
            DPB    far * getdpb () ;    /*    - */
                                        /* ஢ ᪠ */
            void   diskaccess () ;      /* ᮫⭮ ⥭/ */
                                        /* ᪠ */
            BOOL   match () ;           /* ᮮ⢥⢨ । */
                                        /*    䠩 */

            /* *******************************************************
            /*
            /*              窠   室
            /*
            /* *******************************************************

            main (argc,argv,envp)
            int argc ;
            char   * argv [] ;
            char   * envp [] ;
               }
               char   near * sspec ;       /* ࠪ⨪ ᪠ */
               char   dname [DNAME_SIZE];  /*   ⠫ */
               char   * pptr ;             /* 㪠⥫  ⠫
                                           /*  */
               WORD   dnum ;               /*  ᪮ (室- */
                                           /*  祭 0) */
               WORD   snum ;               /*  ᥪ ⠫ */
               WORD   savenum ;            /* ᯮ  - */
                                           /*  */
                                           /* 祭 snum */
               DENTRY near * dptr ;         /*  ⥪饣 ⠫ */
               print ("\nRESCUE, Version 2.OO\n\n");

               if (argc<2) {               /* ᫨  ࠬ஢   */
                      print ("***  䠩  㪠 ***\n");
                      exit (1) ;
                      };
               sspec =argv [1];           /* 䠩  ⠭ */
               getcwd (dname, DNAME_SIZE) ;  /*  ᪮  */
                                             /* 㬮砭  ⠫ */
               if (*(char *)((WORD)dname + strlen(dname) - 1) NE '\\')
                    strcat (dname, "\\");  /*   㯠 - */
                                          /* 稢  "\"*/
               pptr = dname+3;            /* 㪠⥫  砫쭮 */
                                          /*   㯠*/
               dnum = *dname - 'A' ;      /*   ᪮ */

         /*  । ࠧ  祭   ࠬ- */
         /*  ஢ ᪠ (DPB),  ࠧ ⠡ FAT, ⢮ */
         /*  ⮢  , 饥 ⢮ ᥪ஢  ..     */

         DPBPtr = getdpb (dnum) ;  /*   ࠬ஢ ᪠ */

          if(dnum NE DPBPtr->PhysDrive) {
             printf ("᪮ %c:  \n",(dnum+ 'A'));
             printf("ணࠬ RESCUE 㤥 ࠡ ⮫쪮
                      䨧᪨ ᪮\n");
             exit (1);
             } ;

                                      - 11-62 -

            FATSize = DPBPtr->BytesSector * DPBPtr->nFATsec:
            CLUnit  = DPBPtr->SectorsCluster + 1;

         TotSect = (DWORD) DPBPtr->TotClust * (DWORD) ClUnit
                      + (DWORD) DPBPtr->DataSect;
            BytCLust= DPBPtr->BytesSector * CLUnit;
           /* P।   ஢ ⠫  ⠡ FAT */

              If (((DirAnchor=(Dentry near *) malloc(BytClust)) EQ
                              NULL) OR
                  ((AltAnchor=(DENTRY near *) malloc(BytCLust)) EQ
                              NULL) OR
                  ((FATAnchor=(WORD far *)_fmalloc(FATSize)) EQ
                               NULL)) {
                  printf ("*** Can't Allocate Working Memory ***\n");
                  exit (1);
                  } ;

            /* C  室 ⠡ FAT */

            discread (dnum,DPBPtr->Reserve,DPBPtr->nFATsec,FATAnchor);

            /*   楯 ⮢ ⠫  ᪠  */
            /* ᮮ⢥饣    㯠 */

               snum = DPBPtr->Dirsect;    /*  ᥪ ⠫ */
               while (*pptr NE '\0')      /*   ,   */
                                    /* 㯠  ⠫ 㫥 */
                  if ((dptr = findf (dnum, &snum, pptr, DirAnchor,
                    NULL,FATR_SUBDIR,IS_INIQUE)) NE NULL) {
                       snum = sector_of (dptr->cluster);
                       while ((*pptr NE '\0') AND (*pptr NE '\\'))
                           pptr++;
                       if (*pptr EQ '\\') pptr++;
                    } else {
                      printf ("*** Can't Find  Directory  %s  ***\n",
                                                               pptr);
                      exit (1);   };
              /* ଠ쭮 襭, ᫨ 䠩, 騩  */
              /* ⠭,  . */

                    savenum = snum;    /* ࠭ ᥪ ⠫ */
                   if (findf (dnum, &dnum, sspec, DirAnchor,
                      NULL,FATR_NONE,IS_UNIQUE) NE NULL) {
                  printf ("***%s%s   ***\n",dname,sspec);
                  exit (1) ;
                   };
             /* E᫨ 䠩 , ⠫  䠩 ⥬ */
             /* ⠭  */
                  snum = savenum;   /* ⠭ ᥪ ⠫ */
                  if ((dptr = findf (dnum,&snum,sspec, DirAnchor,
                     NULL,FATR_NONE,IS_ERASED)) NE NULL){
                  if(get_cluster (dptr->cluster) NE 0)
                     printf ("H 䠩%s%s   
                                                     ⠭\n",

                                      - 11-63 -
                       dname, sspec);
                     else {
                   if (savefile (dnum,dptr, snum,toupper(*sspec))) {
                      if (dptr->attrib & FATR_SUBDIR)
                          print ("⠫ %s%s ⠭\n,
                             dname,sspec);
                          else
                            printf (" %s%s ⠭\n",
                               dname,sspec);
                       } else {
                         printf (㤠筮 ⠭ %s%s\n",
                           dname,sspec);
                         diskread (dnum,DPBPtr->Reserve,
                           DPBPtr->nFARsec,FatAnchor);
                       };
                     };
                 } else {
                   printf ("    䠩 %s%s\n",
                     dname,sspec);
                   };
                 };
         /* ****  ᫥騩   楯 ********************

               ⠭⭠ ணࠬ 室 祭  FAT.
          ⭮ ᮥ ஢ FAT  楯.    ⠭-
         ⭠  ணࠬ 頥  祭  (᫥-
         騩   楯 䠩 樮 ⥬ DOS)   -
          祭 NULL, ᫨  楯   ஢.

              ᫨    10   ,   ᯮ-
          12-⮢  ⠡ FAT (). ᫨  ,
          ᯮ 16-⮢  ⠡ FAT.

         祭 : (0)000 ................ ᢮ 
                            (0)001 ................ ।
                            (0)002 -(F)FEF......... ᫥騩 
                            (F)FF0 -(F)FF6......... १ࢨ஢
                            (F)FF7 ................ ᯮ祭 
                            (F)FF8 -(F)FFF.........  楯
         */

            WORD   get_cluster (clust)   /*   */
                WORD clust;
                {
                union { WORD FAR }* w;  /* 㪠⥫  ⠡ FAT */
                    BYTE far * b;
                    }fatptr;
                WORD   value;            /* ᮤন  */

                    if (TotSect > TENMB){
                    fatptr.b=(BYTE far *)
                      ((DWORD) FatAnchor + (DWORD)(clust * 2));
                    value = *fatptr.w;
                } else {
                fatptr.b= (BYTE far *)
                ((DWORD) FatAnchor + (DWORD)(clust * 3/2));
                value = *fatptr.w;

                                      - 11-64 -
         /*    묨 ࠬ ᤢ  */
         /*   4   ᫮ */
                    if (clust & 0x01) value >>= 4;
                    value &= 0x0fff;
                    } ;
            if ((value & 0x0ff0) EQ 0xff0) return (CHAIN_END);
                    else return (value);
                    } ;

         /* ****  ࠭ 祭  *************************
                  ⠭⭠  ணࠬ  頥  祭    
                ⠡  FAT,  ᫨    10 
             12-⮢   ⠡  FAT  ().  ᫨
             ,  ᯮ 16-⮢  ⠡ FAT.

         */
            void put_cluster (clust,value)
                WORD clust;              /*   */
                WORD value;              /* 祭   */
                {

            union { WORD FAR }* w;       /* 㪠⥫  ⠡ FAT */
                BYTE far * b;
                }fatptr ;
            WORD   cur_val;          /* 祭 ⥪饣  */

            if (TotSect > TENMB) {
                fatptr.b=(BYTE far *)
                ((DWORD) FatAnchor + (DWORD) (clust * 2));
                *fatptr.w=value;
                } else {
                fatptr.b= (BYTE far *)
                ((DWORD)FatAnchor + (DWORD)(clust * 3/2));
                cur_val = *fatptr.w;
         /*    묨 ࠬ ᤢ  */
         /*   4   ᫮ */
            if (clust & 0x01)
                *fatptr.w = (cur_val & 0x000f)  (祭 << 4);
            else
                *fatptr.w = (cur_val & 0xf000)  (祭 & 0x0fff);
                } ;
            };

         /* ***    䠩  ࠭ ⠫ 
                                               ⠡ FAT 䠩 ***

                ணࠬ ⠭   䠩,  ᫨  
            .    ⢮ ஢,  
             䠩,      ⠡ FAT.

                 ⠭⭠ ணࠬ ।,    -
            砫쭮    䠩, 饣 ⠭, 
            ஢७,   祭 ࠢ .
         */

                                      - 11-65 -
            BOOL savefile (dnum,dptr,sect,ch)
                WORD    dnum ;                /* ࠡ稩 ᪮ */
                DENTRY  near * dptr ;     /*   ⠫, */
                                          /*  騩 ࠭ */
                WORD    sect ;            /*   ᥪ஢ */
                                          /*  */
                BYTE    ch ;          /*   ᨬ    䠩 */
                {
                DENTRY  far * writeptr ; /*㪠⥫   ⠫*/
                WORD    filecls ;        /* ࠧ 䠩 ( ) */
                WORD    last ;           /*  ᫥   */
                WORD    current ;        /*  ⥪饣  */
                WORD    next ;           /* ᫥騩   楯 */
                WORD    fatsect ;        /*  ᥪ ⠡ FAT */
                union { WORD FAR }* w ;  /* 㪠⥫  ⠡ FAT */
                    BYTE far * b ;
                    } fatptr ;

            if (dptr->attrib & FATR_SUBDIR)  /* ᫨ 䠩 室  */
                                             /* ⠫ */
                filecls = 0 ;                /*   㦭 */
            else
                filecls = (WORD) ((dptr->fsize + (DWORD)BytClust-1L)/
                (DWORD) BytClust) -1 ;
            current = last =dptr->cluster ;   /*   */

            /* ࠢ ⠡ FAT */

            while (filecls) {
                if (++current > DPBPtr->TotClust) {
                   print ("\n***  ⠭ 䠩 ***/n");
                   return (FALSE) ;
                   } ;
                if (get_cluster(current) EQ 0) {  /* ⮩   */
                   put_cluster (last,current) ;   /*  楯 */
                   last = current ;
                   filecls-- ;
                   } ;
                } ;
                put_cluster (last, FILE_END) ;         /*  楯 */
                *(dptr->name) = ch ;     /* ࠭  ᨬ */

            /* ⮢ 襭 -  ᥪ ⠡ FAT */
            /*  ⠫ */

                writeptr = DirFnchor ;
                fatsect = DPBPtr->Reserve ;
                disckwrite (dnum,fatsect,DPBPtr->nFATsec,FatAnchor) ;
                fatsect += DPBPtr->FATsec ;
                disckwrite (dnum,fatsect,DPBPtr->nFATsec,FatAnchor) ;
                disckwrite (dnum,sect,ClUnit,writeptr) ;
                dbos (DFUNC_RESETDSK,NULL,NULL);
                return(TRUE)) ;
                } ;

            /* ****  ।    ⮬ ⠫ **** */


                                      - 11-66 -
            DENTRY near * findf (dnum,sect,pptr,dbuf,bptr,sattr,mtype)
                WORD    dnum ;         /* ࠡ稩 ᪮ */
                WORD    * sect ;       /* ᥪ ⥪饣 ⠫*/
                char    near * pptr ;  /* 㪠⥫   㯠*/
                DENTRY  near * dbuf ;  /*  ⠫ */
                DENTRY  near * bptr ;  /* 㪠⥫ 㣮  */
                BYTE    sattr ;        /* ਡ ᪠ */
                int     mtipe ;        /* ॡ㥬 ⨯ ᮢ */
                {
                int     i ;            /* 稪 横 */
                WORD    cluster ;      /* ᯮ  楯 */
                DENTRY  near * dirptr ; /* 㪠⥫   ⠫*/
                DENTRY  far  * readptr ; /*㪠⥫   ⠫*/
                DENTRY  near * dirend ;  /*    */

                readptr = dbuf ;
                dirend = (DENTRY near *) ((WORD) dbuf + BitClust - 1) ;

                while (TRUE) {
                   if (bptr NE NULL) {    /* த  ... */
                       dirptr =++bptr ;   /* ⮣ ,  */
                                          /* ⠭ */
                       bptr = NULL ;
                     } else {             /* ,   砫 */
                       diskread (dnum,*sect,ClUnit,readptr) ;
                       dirptr = dbuf ;
                       } ;

                              /* E  ᮢ騥 䠩 ? */
                while (dirptr < dirend) {
                   if (((dirptr->attrib & sattr) EQ sattr) AND
                       (match (pptr,dirptr->name,mtype)))
                       return (dirptr) ;
                   dirptr++ ;
                   } ;

            /* B   ⮬  ਢ, ३  */
            /* 㣮 */

            if (*sect >=DPBPtr->DataSect) {      /* ⠫ */
                  cluster = cluster_of (*sect) ; /* ᫥騩 */
                  if ((cluster = get_cluster (cluster)) LE CHAIN_END)
                        return (NULL) ;
                      else *sect = (sector_of (cluster)) ;
                   } else                       /* ୥ ⠫ */
                   if (*sect >= DPBPtr->DIRSect) {
                       *sect += ClUnit ;        /* ᫥騥 ᥪ */
                   if (*sect >=DPBPtr->DATASect) return (NULL) ;
                   } else return (NULL) ;
                   } ;
                 } ;
               /* ****   ࠬ஢ ⥬ BIOS  ****** */
               /* ****   ᪮ ********* */

         DPB far *getdpb (dnum)  /*  㪠⥫   DPB */

           Word    dnum ;     /*  ࠡ祣 ᪮ */

                                      - 11-67 -
           {
           union REGS inregs, outregs ;
           struct SREGS segregs ;
           LONGPTR farptr ;
           inregs.h.ah = DFUNC_GETDPB ;
           inregs.h.dl = dnum + 1 ;
           intdosx (&inregs, &outregs, &segregs) ; /*  DPB*/
           if (outregs.x.cflag) {
            if (outregs.h.al EQ 0xff)
             print ("*** ᪮ %c ࠢ ***\n",(dnum + 'A')) ;
                else
             printf ("***    ࠬ ᪮ %c ***\n",
                     (dnum + 'A')) ;
              exit (1) ;
              } ;

            farptr.a.off = outregs.x.bx ;
            farptr.a.seg = segregs.ds ;
            return ((DPB far *) farptr.ptr ;
            } ;

         /* **** ⥭/   אַ 㯠 *********** */

         void diskaccess ((function, dnum, sector, count, buffer)
              BYTE function ;         /* 㭪 뢠 */
              BYTE dnum ;             /*  䨧᪮ ᪮ */
              WORD sector ;           /*  ᥪ */
              WORD count ;            /*  ᥪ஢ */
              BYTE far * buffer ;     /*  */
              {
              union REGS inregs, outregs ;
              struct SREGS segregs ;
              LONGPTR farptr ;

              farptr.ptr = buffer ;
              inregs.h.al = dnum ;
              inregs.x.dx = sector ;
              inregs.x.cx = count ;
              inregs.x.bx = farptr.a.off ;
              segregs.ds = farptr.a.seg ;
              int86x (function,&inregs,&outregs,&segregs) ;
              if (outregs.x.cflag) {
                if (function EQ ABC_READ)
                 printf ("*** 訡  ६ 뢠 ᪠ ***\n") ;
                   else
                       print ("*** 訡  ६    ***\n") ;
                     exit (1) ;
                     } ;
                  } ;

         /* ************ ஢   ᮢ ********** */

         /*     ⬥⨬,  饭   ᨢ    
             , ⮬ ࠢ  E5 㤥 믮
            騬 ࠧ.*/


                                      - 11-68 -
            BOOL match (sname, fname, mtype)
                 BYTE   near *sname ;   /*  ᮢ饣  */
                 BYTE   near *fname ;     /*  䠩  ⠫ */
                 int    mtype ;            /* ⨯ ॡ㥬 ᮢ */
                 {
                 int    i ;                /*  */
                 char   near *fext ; /*७ 䠩  ⠫*/
                 fext = fname + 8;      /* ७  䠩 */

         /*ઠ ﭨ 䠩 (/⠭)  ⨯ ᪠*/

                 if  (((*fname NE 0xe5) AND (mtype EQ IS_ERASED)) OR
                      ((*fname EQ 0xe5) AND (mtype NE IS_ERASED)))
                      return (NO_MATCH) ;

                 if  (*fname EQ 0xe5) {    /* ஢  */
                     fname++ ;             /* ᨬ ⮣ 䠩 */
                     sname++;
                     } ;

                 while (fname < (fext+3)) {
                 if (*fname EQ toupper(*sname)) {
                    fname++ ;
                    sname++ ;
                  } else                   /* ᫨  ࠧ, */
                    switch (*sname++) {    /* ᭨ 祬 */
                      case '.':
                          if ((*fname EQ ' ') OR (fname EQ fext)) {
                            fname = fext ;  /* ஢ઠ ७ */
                            break ;
                            } ;                  /*  */
                          return (NO_MATCH) ;
                      case '\\':
                      case '\0:
                          if (*fname EQ ' ')   /*   sname */

                                 return (IS_MATCH) ;
                      default:
                          return (NO_MATCH) ;
                      } ;
                   } ;
                   return (IS_MATCH) ;
                 } ;

            /*  䠩 RESCUE.C */


                           ᯮ짮 ⨫ ⮭

              ⨫ ⮭ 祭  ᯮ짮, ᮡ,  
         -    ᪮ MS-DOS.   ⨫ ⮭
          3.0 ணࠬ DL (ᬮ   UE(⠭) 
          ப ᯮ㥬묨  ⠭ 䠩. ணࠬ-
          ᬮ ᪠ DL ᬠਢ ᥪ  ᥪ஬  -
          ᪠,  ⮡ࠦ ⭠     -
         ,        祭   ASCII -  ࠢ 
         ࠭.  ணࠬ, 筮 㤮  । ଠ

                                      - 11-69 -
         ᪠,   ⠪  । ⨯ 뢠 ᥪ஢ (⠪,
          ᥪ஢ 砫쭮 㧪, ⠡ FAT, ⠫  -
           ),    ணࠬ ⮡ࠦ  ࠭  ଠ.
         ணࠬ  ⠪ 뢮  ࠭ ⮥ ⮡ࠦ  -
         ,     ᪠, ।⠢  ⮩
         , 뢠騬  祣 ᯮ  ᥪ  -
           窨 ७ ४ .  ⠪ 뢠  -
           ᪠ ᯮ 䠩,    .
              ணࠬ ⠭ UnErase  ணࠬ DiskLook.
           ணࠬ  UnErase  뢠 㤭,  ᫨  砥
         ஡,  ᠭ  ⮩ .  ਬ,  襭 䠩
          ண ᠫ  ଠ  ᪮쪮 䠩 
         ᫮묨 ९⥭ﬨ.
               ன ⥯ 業 ⨫ ⮭   ⮣,
              ᪮ MS-DOS   ⮣,  
           ᥪ ⠡ FAT  ᥪ஢ ⠫,   -
             .   ᫨    ,   
         㢨,    ணࠬ  訬 騬  ਠ
           ᭮  ஡ ᯮᮡ ⮡ࠦ  ࠭ -
          ᪠.  㣮 २⢮ 砥  ⮬,   ।⢠
           ஥  ணࠬ  楫 ࠦ   -
         ࠧ  ⢨.
                 3.0  ⨫  ⮭  㭪樨    ணࠬ
         DiskLook  UnErase ꥤ  ணࠬ NU  (Norton Utilities).
         ᯮ㥬    ⮩ ॠ樨 㭪樨 뫨 ᮢ襭⢮ 
           ᥡ  ஡ ᠭ ᮤন ᪠ 
         २⢥ ਯ⮣᪮ ⭠筮 ।⠢-
          .  쪮 ⨫ ⮭ ᨨ 3.0    -
           80-४묨, ஭ 5,25-묨  -
           ᮪  ⭮,    ⠪    20-묨  ⪨
         ᪠  ᮭ  ⨯ IBM PC-AT  ᮢ⨬ 
         .     ᨩ (  ᨨ 3.0)   ࠡ
           8-묨   ᪠,   ⠪    ࠡ 
         ⪨ ᪠, 騬 ଠ, ⫨  ,  ᯮ-
            ⥬ ᮭ ஢ IBM XT  IBM AT. 쪮
         ⨫ ⮭ ᨨ 4.0  ࠡ  ᥬ ଠ⠬ -
         ,   ᮮ⢥ ⠭ ᮣ襭  ଠ-
           樮 ⥬ MS-DOS.  ஬ ⮣, ᪮ ᯮ-
         ᮡ,      ணࠬ  ⮡ࠦ  ଠ    ࠭
         ᫮,  ࠡ ⮫쪮  ᯫ 㤮, ᮢ-
            ᮢ⨬  㤮, ᯮ騬  -
         ⥬ "".  ᫨,  ,   㤥 ᯮ짮 ᮭ
             "" IBM PC  ᮢ⨬   ⥬,  
         㢨,  ⨫ ⮭ ࠡ  䥪⨢  ࠧ-
         ࠧ, ⮬   祭  室  ⥬, ᠭ 
         ⮩ .


                           ᯮ짮 "Ultra-⨫"

              "Ultra-⨫" ।⠢ ᮡ  ணࠬ ⠭-
          䠩,   ⨫  ⮭. "Ultra-⨫" -
          ন묨 짮⥫ﬨ ணࠬ, ⠪  -
         묨  "᪨  ࠭塞묨  ணࠬ"*,  


                                      - 11-70 -
          ਮ १   ⠢ ணࠬ  -
         祭.  "Ultra-⨫"  ᮤঠ ਬ砭  짮⥫ 
         ⮬,  ᫨ ਮ⥭ ணࠬ    묨,
            ⠭
         㬬  ᮧ⥫,        ⠭  "ॣ஢
         짮⥫"    㤥  饬   ଠ 
          饣   ணࠬ ᯥ祭.
                ᪥ "Ultra-⨫"  室  ணࠬ:
         U-ZAP, U-FORMAT    U-FILE.  ணࠬ  U-ZAP  宦  ணࠬ
         ᬮ ᪠ DiskLook  ⨫ ⮭  ।⠢   -
         ப     䨪樨 ᮤন  ⥩ ᪠.
         ணࠬ U-FORMAT 祭 ᯥ筠  ணࠬ,  ⮬    
         ᯥ稢  ଠ஢  ⤥  ४  ᪠.  ணࠬ
         U-FORMAT   ଠ஢  ⤥  ४  ᪠,  
         ࠧ訢   樮 ⥬ MS-DOS,  室騥  .
             祭    ࠡ-
           ᪮  ६  ⠪ 쥧 㤭⥩ 
          ଠ஢,    樮 ⥬ MS-DOS  
         ⠭  ,        㯠.  ணࠬ U-FILE
         ᯮ  ﬨ ⮡ࠦ  ࠭   -
         ஢ 䠩  ᪥,   㭪 ⠭ 
         䠩.
              "Ultra-⨫"    ४᭮  ୠ⨢  ⨫
         ⮭ ,  ᫨    ⮨ ணࠬ த⮢. 
               ࠧ㡥   ᥡ   㯭  ⮣  :
         "Ultra-⨫" ⢨⥫쭮    ४묨  ணࠬ,
         ࠧࠡ⠭묨   ᨮ,     ᯮ  ண
         ᯮᮡ  ࠭.


                                    祭

               ⮩      뫮  ᪮業஢  
         ᪠   楤 ⠭ 䠩  ࠢ -
         樮  ⥬ MS-DOS.  ଠ,  ।  ⮩ ,
           ⮬,  , ᫨   㦭묨 ﬨ  
         ⠭ , ࠧ襭  ﭭ 䠩. , -
           ,   ࠧ 㯮  ।⢠  -
           䠩  ᯥ稢  ࠧ  ⥯  ࠡ 
         ᪮묨 䠩,  ᭮ ᫥⥫쭮 ⢨  -
         ⠭ 䠩, ᠭ  ⮩ , ⠥ ⮩ .
               ᫥饩  ᬠਢ   :  -
          , ﭭ  .   ᪠ 
         奬 ࠭ 䠩     ᫥饩 .
