		       /뢮 䠩
		       

       BDS C   ᭮ ⥣ਨ 㭪権 䠩-
 /뢮. ࢨ 㭪樨 ( ஢) ᯮ-
  ⥭   ᪠        ᥪࠬ.
ਧ 㭪樨	/뢮      짮⥫
   묨   㤮  ⢠,  ⠪,  
    ப ⥪. 砫 襬 ࢨ -
樨,  ⥬ ਧ. 

			  䠩
			 

     ᫨ 㭪 砥  䠩  ⢥ 㬥,  
    ⠭⮩-ப ᨬ     -
ࠦ  祭, 㪠뢠騬   ப,	ᮤঠ  
䠩. ⨬  䠩, ᮤঠ騥 ᨬ  孥,
⠪   ॣ,   ப     ᨬ-
 ⮣ ஬⪠ ( ⪨, ॢ ப, -
, ⠡樨). 

		   䨪 㪠⥫ ᪠
		   

      䠩  ᮤঠ 㪠⥫ ᪠	  ଥ  "d:",
⮡ ᯥ஢ । ᪮ CP/M;   㬮砭
 ⥪騩 .  d    㪢       z
(ᮮ⢥饩 ॠ쭮 ᪮ ன). 

		 䨪  짮⥫
		 

     䨪  짮⥫   "#/"   ⠪
ᯮ짮  ⢥ 䨪  䠩,  #  
 ᫮  0  31. ᫨ 䨪 ய饭,    㬮-
砭 ਭ  ⥪饣  짮⥫.  ᫨  
 䨪 (祭 ᪠  ᯥ䨪	   -
⥫), ⮣ 䨪  짮⥫    -
. ਬ, ⮡  䠩, 		"foobar.zot"  
 짮⥫ 7  ᪥ ,   㪠: 

     Open ("7/c: foobar.zot", Mode) 

     ᫨   䠩  㦥  -  -
 ᨬ (⠪,  control-),  䠩 㤥 ⢥-
  㭪  祭 Error.   -  
㤭, 맢 ⪮  䠩,    ண  -
ন ⠥ ᨬ,   堭     -
 .  ஦  ஥  䠩. 

		     ࠡ⪠ 訡
		     

     BDS C v.1.50 ᮤন   ।⢠  ⨪  訡
/뢮 䠩. 筮  ⠭  㭪樨    砥
訡  祭 (-1) (Error).  ⠪  -
   㭪樨 ErrNo, ⮡   ᯥ樠  
訡, 騩  ⠫ ଠ  . ᫨   -
 祭, 饭 㭪樥 ErrNo,  㭪樨	ErrMsg,
ErrMsg  㪠⥫  ப,  ᮤন	᫮-
 ᠭ  ந襤襩  訡.    ।⠢  ਬ
ᯮ짮 ⮣ 堭,    砥  ஢-
 訡,  ந諨  믮 㭪樨 Write: 

     if(Write (FD, Buffer, NSects)= NSects )
	 PrintF("Write error: %s\n", ErrMsg (ErrNo())),

      ,  㭪 Write ⠢  ᪫祭
 ࠢ, 饣,   ᨣ  訡  	
祭 -1 (Error); Write 頥  ᫮  䠪᪨  -
ᠭ ᥪ஢; ᫨  ᫮  ࠢ  ᥪ஢,  -
 ॡ , 祢, ந諠 訡. 

		   ९  
		   

     㦥 ९  讬 䠩, ⮬  
⥭/,  㭪 OFlow. ९  ந室,
᫨  ⠥ /뢠 ᫥ ᥪ    65535
䠩. 

	 ࢨ 㭪樨 䠩 /뢮
	 

     int Open (Filename,Mode)
     char *Filename;
     char Mode; 

     뢠 ᯥ஢  䠩	  ,  ᫨  Mode
 㫥;  뢮, ᫨ Mode ࠢ 1;    뢮,
᫨ Mode ࠢ 2. 
     頥 ਯ 䠩  -1  砥  訡.  -
ਯ 䠩  ᯮ 㭪ﬨ Read, Write, Seck,  Tell,
FAbort  Close. 

     int Creat(Filename)
     char *Filename; 

      ⮩ 䠩   , ।⥫쭮 -
   騩 䠩  ⥬  .  䠩  -
᪨ 뢠   ⥭/  ;  ਯ  䠩
頥  ᯮ짮	㭪ﬨ  Read,  Write,  Seek,
Tell, FAbort  Close.  祭 -1  砥 訡. 

     int Close(FD)
     int FD; 

     뢠 䠩, ᯥ஢ ਯ஬ 䠩 FD  
᢮  FD  ᯮ짮   㣨  䠩.    
 ந室 ⮫쪮 ⮣,  뢠 䠩, 
 ; ᫨ 䠩   ⮫쪮   ⥭,  FD  ᢮-
,  䠪᪨   ந室    饭  
CP/M, ⮡   䠩.
     Close  a ᯮ짮   ਧ  -
/뢮  䠩.  ⮣ ᯮ FClose.
     Close 頥 -1  砥 訡.
      ⬥,       䠩  ⮬᪨
뢠   饭   ६ 믮   -
樨 Main ,   뢠 㭪  Exit.  ⮡	।-
 ⨥ ⮣ 䠩,  ᯮ 㭪	FAbort.

     int Read(FD,BUF,NBL)
     int FD;
     char *BUF;
     unsigned NBL; 

     ⠥  ()  128   ⢥ NBL   -
ᨢ BUF   䠩  ਯ஬ FD.  ⥫  ⥭/,
樨㥬  㪠 䠩,  ⠭  	,
ᯮ ᫥  ᫥  ⠭  .  
맮 Read    ⮣    䠩, 	஥
⠭ 㪠⥫  ।⢥  ।饬 맮
Read  Write. 㭪 Seek  ᯮ짮  	-
樨 㪠⥫ ⥭/.
     頥 ᫮ 䠪᪨ ⠭ , 0   -
㦥   䠩, -1  砥 訡.  , 
᫨   n  ,   䠩 ⠫  䠪-
᪨ ⮫쪮 x   ( 0<<n), 稭  㤥	-
饭  ⮬ 맮, 0  ᫥饬 맮 ( ᫮,  
맮 Seek  ᯮ)  -1   ᫥ 맮. 

     int Write(FD,BUF,NBL)
     int FD;
     char *BUF;
     unsigned NBL; 

     뢠  ()  128   ⢥ NBL  
ᨢ BUF   䠩 FD.  맮 Write 뢠  
, 稭  ⮩  窨,  ன ⠭  ।
 Read  Write, ᫨  ⮫쪮 Seek  ᯮ  
䨪樨 㪠⥫ ⥭/. 
     頥 -1  砥 訡  ᫮ ᯥ譮 ᠭ
. ᫨ 饭 祭 ⥫쭮,  	⫨-
  NBL, , ⭮, 砥,   室 -
 ࠭⢮;  	ᬠਢ  訡. 

     void Seek (FD,OffSet,Code)
     int FD;
     int OffSet;
     char Code; 

      㪠⥫ ⥭/ (ᯥ騩  -
 ᥪ  ()  ᫥ 権 Read  Write),
樨஢   䠩  ਯ஬ FD.
     ᫨ Code ࠢ 0,  Seek  ⠭	㪠⥫  -
/     ஬, ࠢ OffSet. ᫨ Code ࠢ
1,  Seek ⠭ 㪠⥫ ⥭/      
஬, ࠢ ⥪饬 祭 	OffSet	(OffSet   
 ⥫).
     ᫨ Code ࠢ 2,  Seek  ⠭	㪠⥫  -
/   , ࠢ   ᫥    
䠩   OffSet. ⢥,  ⮬ 砥 祭  OffSet
   ⥫, ⮡ ᫥ ⮩ 樨 㪠⥫
䠩 㪠뢠    . ᫨  Code  ࠢ  2  
OffSet - 0, 㪠⥫  ⥭/ ⮢ 䠩    -
 ᥩ  . 
      祭 -1 砥,  BDOS   饭  
訡	 맮 Seek  Code, ࠢ 2.  㭪  ErrNo  -
⠢   ଠ樨  ⨯ ந襤襩 訡. Seek 
 ਬ   䠩,   ਧ -
/뢮. 

     void Tell (FD)
     int FD; 

     頥 祭  㪠⥫  ⥭/,  樨-
  䠩	FD.  ᫮ 砥,    ᫥饣
ᥪ,  㤥	ᠭ  ⠭   䠩,  祬
㬥 ᥪ஢ ,  稭  0. 

     int UnLink (Filename)
     char *Filename; 

       䠩  	䠩  ⥬.  ᯮ
஦. 

     int Rename(Old, New)
     char *Old, *New; 

     २ 䠩  ࠧ. 㥬 䠩  
     ६,  	 ਬ  Rena-
me.
     Rename 頥 -1  ⢥ ᨣ  訡.  

     int FAbort(FD)
     int FD; 

     ᢮ ਯ 䠩 FD      樨-
    䠩. ᫨ 䠩   ⮫쪮  ⥭, 
    ⢨  ᮤন 䠩. ᫨  䠩
   ,    , ᤥ  ⥪饬
⥭,  ந஢,  ⠪        -
,  , ᤥ  㣨  ⥭,  ⭮,
⠭.  ਬ 맮 㭪樨 FAbort   䠩, -
⮬  , ᫨     ᠭ   
. 

     unsigned CFSize (FD)
     int FD; 

     뢠 䠪᪨  ࠧ  (  ᥪ)  
(⮣)  䠩   ﭨ    㪠⥫	⥭-
/, 樨㥬   ⨬ 䠩.	  ⬥,  
頥 ࠧ 㤥 ࠦ  , ᠭ   
⥭,  ⮣    ,   ⫨稥 	㭪樨
35 BDOS, ᯮ㥬 筮   ࠧ  䠩. 

     int OFlow(FD)
     int FD;
     
     頥 祭 True (-㫥), ᫨ ந諮  -
९   襬 (쥬)    "    
אַ 㯥"  FCB,	樨㥬    䠩.

     int ErrNo() 

     頥  ᫥ 騡, 㦥    믮-
 ᫥  樨  /뢮 䠩.  ਢ
ᯨ᮪ ᮮ饭   訡  ᮮ⢥  . 

     char *ErrMsg(ErrNum)
     int ErrNum; 

     稢  訡, 饭 ErrNo,   㭪  -
頥 㪠 ⥫  楯 ASC II, 뢠  訡
 ᪮ 몥.  ।⠢     -
  易   ᮮ饭. 

     	      
      0  뫮 㦥  訡
      1 ⪠ ⥭ ᠭ 
      2 室  ।    ᪥
      3  㤠  ⥪騩 ⥭
      4 ⠭ 㪠⥫  ᠭ ⥭
      5  㤠 ᮧ  ⥭
      6 ⠭ 㪠⥫  । ᪠
      7   䠩 ਯ
      8 䠩    ⥭
      9 䠩    
     10  ⠫   ᢮ 䠩 ਯ
     11 䠩  
     12   ०  Open
     13  㤠 ᮧ  䠩
     14 ⠭ 㪠⥫   # 65535 

     int SetFCB(FCBAddr,Filename)
     char FCBAddr[36];
     char *Filename; 

     樨  36-⮢    ࠢ	䠩	CP/M  
 , ᯮ   FCBAddr,    䠩  
, ᮤঠ騬 	ப, 稢饩  ,  -
 㪠뢠 Filename.   ॣ   ப  
 䠩 ८ࠧ  ᨬ  孥 ॣ    -
 室 ᫮ ஡ ASC II    -
   ७ FCB.  "᫥ "  	 "
⥭" FCB .
      㦥 ⨬ ᨬ      -
७  Filename -"⥫"   ⮪  ப    
䠩  ந஢. 

     char *FCBAddr(FD)
     int FD; 

     頥  筮 ⮣  짮⥫  FCB
樨㥬   䠩  ਯ஬ FD .
     頥 -1, ᫨ FD   䠩 ਯ஬
⮣ 䠩. 

	 㭪樨 ਧ /뢮 䠩
	 

     int FOpen (Filename,IOBUF)
     char *Filename;
     FILE IOBUF; 
     뢠 㪠 䠩  ਧ    -
樨  ,   㪠뢠 IOBUF. IOBUF -   㪠-
⥫     ࠧ஬  BUFSIZ ⮢, १ࢨ㥬
 ᯮ짮  㭪ﬨ ਧ /뢮. -
祭 BUFSIZ ।  ⠭ 䠩   BDS  C
 /뢮 (bdscio.h),      祭  
 #include   ணࠬ, ᯮ	 ਧ஢-
 /뢮.
     頥 祭 -  䠩 ਯ  -
⮣ 䠩;  ᠬ  짮⥫  㦤  	ᯮ-
 ਯ,   ᪫祭 ஢ન ⢨  訡-
, ⠪  祭 䠩	ਯ ﭭ  ࠭
  /뢮  ᯮ짮  ᥬ	ਧ묨
㭪ﬨ /뢮.  砥 訡 頥 -1. 

     int GetC(IOBUF)
     FILE IOBUF; 

     頥 । 	  室  ⮪,  ᮮ⢥-
饣  䠩, ⮣ ।⢮ FOpen  ஬  IOBUF.
 ᯥ樠  ᨬ   ᯮ:	control-z  -
頥,  control-z ( 	  1),  cr	  lf  
묨 ᨬ  ..
      㬥 IOBUF   㭪樨 ஢  
  ᯮ짮 祭 0   3,  ⮡  ந
   ᮫  ன⢠ Reader.  GetC  (0)  
"GetChar ()". GetC (3) 뢠 ᨬ    ன⢠  Reader
CP/M.
      㦥 訡  䨧᪮    䠩  -
頥 -1.
      ⥭  ⥪⮢ 䠩 ।⢮ GetC    -
祭 01  (CPMEOF), ⠪  -1 ( Error)    -
஢,  ᨣ   䠩, ⠪    ⥪⮢
। CP/M      01 (control-z,  CPME-
OF)   ⥪⮢ 䠩. 

     void unGetC(C,IOBUF)
     char C;
     FILE IOBUF; 

     "⠫" ᨬ  ⭮    IOBUF.  -
騩 맮 GetC   ⮣ 䠩   ᨬ.  -
  ⮫ ⭮  	      
 ᨬ. 

     unsigned GetW(IOBUF)
     FILE IOBUF; 

     頥 ।   (.., 16-⮢ ᫮) 
䠩,	⮣    ஬ IOBUF,  ।⢮  
᫥⥫  맮 GetC.
      砥 訡 頥 -1. 

     int FCreat(Filename, IOBUF)
     char *Filename;
     FILE IOBUF; 

        䠩    ,  ᮤঠ騬    Filename
(।⥫쭮  㤠 騩 䠩  ⥬    )  
뢠 䠩  ਧ 뢮. IOBUF   㪠-
  BUFSIZ-⮢ . 
     頥 FD  䠩  -1  砥 訡. 

     int PutC (C,IOBUF)
     char c;
     FILE IOBUF; 

     뢠    室 䠩   ஬,  	
㪠뢠  㪠⥫ IOBUF.
     IOBUF   ந樠஢ 맮 FCreat.
      ८ࠧ 	믮;  ⥪⮢  ப
   ࠧ ﬨ cr-lf ( ᮢ⨬  
⠭ ணࠬ ᯥ祭 CP/M)  ᨬ "
ப"   Unix (   ᮪ 䥪⨢    -
).
     祭  1  4  ᯮ짮  IOBUF  
 㭪 ਧ 뢮, ᫨ 㦭 ࠢ	뢮-
 ᨬ  ⠭ 室 ⮪, ⠭⭮ ன⢮
⨭,  ⠭⭮ 饥 ன⢮,    ⠭-
⭮ ன⢮ 뢮.
     PutC 頥 -1  砥 訡. 

     int PutW (W,IOBUF)
     FILE IOBUF; 
     unsigned W;

     뢠 16 ⮢ ᫮ W  室  䠩,    
ண  㪠뢠 IOBUF,  ।⢮    ᫥⥫
맮 PutC. 
     頥 -1   訡. 

     int FFlush(IOBUF)
     FILE IOBUF;
	  
     뢠   ᮤন  䠩 -  IOBUF,  .e.
ᯥ稢  饭  䠩  ᨬ, ᫠  
 ᫥  樨 뢮 ( ᫮,   ணࠬ  
ࢠ  ⮣,   맮 Exit ஥  䠩).
     FFlush ।祭  ᯮ짮  䠩  ਧ-
 뢮. 
     ⪠ ᯮ짮   䠩,     
㤥    䥪.
      ⬥,   ⮬᪨  맮  FFlush  -
室 ᥣ,  室  , ⠪    
⮣,  室  䠩 뢠 (१ 㭪 FClose).

     int FClose(IOBUF)
     FILE IOBUF; 

     뢠  䠩 ਧ  /뢮  (
     ⥭ (FOpen)   (FCreat). ᫨
䠩     , 믮 ⮬᪠ FFlush,
⮡   	   䠩.
     ਬ砭:   室 䠩,     -
 થ	 ⥪⮢ 䠩 CP/M  (CPMEOF)    
䠩. 

     int FPrintF (IOBUF,Format,Arg1,Arg2,...)
     FILE IOBUF;
     char *Format;
     int Arg1,Arg2,...; 

     襭 筠 PrintF  ᪫祭 ⮣,  -
஢  뢮 ந    室  䠩  	஬
IOBUF,    ᮫.
     頥 -1   訡. 

     int FScanF(IOBUF,Format, Arg1, Arg2,...)
     FILE IOBUF;
     char *Format;
     int Arg1,Arg2,...; 

     ,  ScanF,   ⥬  ᪫祭,    
ᨬ    室  IOBUF,  	    ᮫.
  FScanF ॡ,  ⮡  窠  ᪠-
஢ ;    , ⠢訩  -
, ⠭  䠩 ᫥ ⮣,    ᯥ䨪樨 -
 뫨 믮, 㤥 襭.
     頥 ᫮ ⮢ ,   ᯥ譮  -
  祭  -1, ᫨  ⥭ 䠩 ந諠 訡.

     char *FGetS(Str,IOBUF)
     char *Str;
     FILE IOBUF;
 
     뢠 ப    室 䠩  -
頥      ,   㪠뢠 Str.
     ᭮  ᮣ襭 CP/M, ᮣ᭮ ஬ ப  -
 ࠬ ᨬ r  (	⪨)    fl  (
窠)    ⥪⮢ ப. ⮡ ᤥ ࠡ   ⥪-
⮢ 䠩   ⮩, FGetS ⮬᪨ 㤠 cr 
  cr-lf, otoa 㯠   䠩.  	ᨬ
cr,  묨    ᫥	 ᨬ  lf,  
஭묨. Lf 砥  ப,    ।⢥  ᫥
ப  頥 㫥 . ஫      -
⠭ ப  믮; 
     室 ⥫쭮 ᫥  ⥬, ⮡   -
筮    Str,  ࠧ饭  ⠬  ᨬ쭮	
ப,    .
      頥  㦥  䠩 (eof)  -
ᨬ  ⮣, ⨫  䨧᪨  eof  (⪠  
᫥  ᫥ ᥪ 䠩)  ᨬ control-z (CPMEOF).
 ⨢  砥 頥 㪠⥫  ப  (ᮢ-
騩  ࠬ஬ Str). 

     int FPutS(Str,IOBUF)
     char *Str;
     FILE IOBUF; 

     뢠 ப, 稢 㫥  ⮬,  -
      Str   IOBUF 室 䠩.
  窨  ८ࠧ  樨 cr-lf,  ⮡
 CP/M ᮤঠ   浪.  ᫨  	(㫥  )
㦨  ப  ᨬ   ப,    -
 騥 ப  室 ᨬ  cr-lf,   -
  ப  . 
   ப,    -
 騥 