		        
		       

      㭪樨, 騥 	BDS  C	  믮
/뢮,    ᭮ ⥣ਨ: ࢨ, 
㭪樨 /뢮  ஢, 	ਧ	㭪樨
/뢮. 
     ࢨ 㭪樨,  ⨦  ࠪ⨪ -
 ஢  몥 ᥬ,    -
 ७ 䥩ᮬ BDOS,   믮  -
樨 /뢮.  , ।  ६  믮-
 ࢨ 㭪権  /뢮,	ᥣ	⥭	ࠧ
 ᪮ ᥪ CP/M (128 ). 
     ਧ 㭪樨  (ᠭ    )  ᯥ稢
-ਥ஢ ᫥⥫ 䠩	⥬  -
/뢮, ᮡ 㤮  ࣠樨 䨫஢.   -
   뢠  ﬨ  㤮  ࠧ-
஢,  ⮬,    堭  ࠢ  ᥬ
ﬨ ਧ樨    ᪠.   ࠧ,  -
ਧ 㭪樨 /뢮   㤮묨  -
, 祬 ࢨ 㭪樨,   ᯮ짮  
 ᫥ ᪮ 믮    室      
㦨  ⥩. 
       ࢨ 㭪樨 /뢮 -   ந⥫
,    ਧ 㭪樨,  ०
ᥣ  ⠫쭮 ࢨ 㭪樨,  ⥬ ३  -
ਧ 㭪. 

	 ࢨ 㭪樨 䠩 /뢮
	 

       ࢨ 㭪権 /뢮 ࠪ୮ ᯮ-
  䨪樨 ࠡ뢠 䠩  䠩  -
ਯ஢.  ਯ,  FD, -   讥  楫
᫮, ஥ ਯ뢠 䠩,   䠩 뢠
 ᮧ,  ⠥ 樨஢  䠩    ,
  㤥 . FD ᮧ  		맮	㭪権
Open  Creat.
     ᯮ짮  㭪権: 

     FD = Open(Filename,mode);

     FD = Creat(Filename); 

     Open ᯮ     㦥  饣  䠩
(筮 ⮣)  ⥭,   ⮣  㣮 -
६. Creat ᯮ  ᮧ  䠩   -
   ⥭  .    㭪 頥
FD, ᫨ ⨥  ᮧ 䠩 諮 ᯥ譮.    砥
訡 (ᯥ஢ 䠩         ᮧ-
), 頥 祭 Error (-1), ᫥ 祣    
맢 㭪 ErrNo, ⮡ ᭨,	祬	䠩    
 . 
      㣨 ࢨ 㭪樨 ॡ  㪠  FD,  ⮡
ᯥ஢ ࠡ뢠 䠩 (  ᪫祭  UnLink  
Rename, ࠬ஬    䠩).   -
 㭪樨 /뢮 Read  Write 믮    -
묨  ᪮   128-⮢묨 ᪨  ᥪ-
. ᮡ  筮 ᯮ짮: 

     I = Read(FD,Buffer,Sects);

     J = Write(FD2,Buffer2,Sect2); 

       ⠥  Sects ᥪ஢   
䠩, FD ண 㪠,   		Buffer.  ன
 ⠥  Sects2 ᥪ஢    	,
稭  祩 Buffer2,  ᪮ 䠩,  ਯ஬  -
ண  FD2. ᫨   ந室	訡	(  砥
⮣,   ୮ 祭 FD   ⪠  
 ᫥  䠩), Read  Write 	맢  -
 ⨢ ᪮.    ᭮	ࠧ稩  
ࢨ  ਧ  /뢮:  ࢨ	㭪樨
뢠  ⨢ ᪮,  ᫨,  筮  
  믮,   ६,   ਧ	㭪樨
   ⮫쪮 ⮣, 	    (
६ )  蠥 ( ६ ⥭). 
       䠩,      ࢨ筮  /뢮,
樨 ᯥ樠 㪠⥫,   뢠  㪠⥫
⥭/ ("r/w 㪠⥫")     짮⥫.  
㪠⥫ ᮤন   ।  ᥪ,	  
 ᠭ  䠩  ⠭  䠩. ࠧ  ᫥  -
 䠩 㪠⥫ r/w ⠭  0 ( ᥪ 䠩-
).  ⮬᪨ 㢥稢 ᫥    	맮
Read  Write,  ⮬ 饭 ࠢ  ᯥ譮  -
। ᥪ஢.  ࠧ,      ।
 "",    ⠭ । .
祭 㪠⥫ r/w 䠩 頥 㭪樥 Tell  
 ஢   㭪樨 Seek. 
      樨 ᯮ짮  ࢨ筮	/뢮  
ணࠬ, ந ⨫,  䠩. 
     ଠ   ⮩ ⨫, (    "co-
py") 㤥 ⠪:  

     A>copy 䠩1 䠩2 <>  

     "opy" 쬥 䠩   "䠩1"   ᮧ  ,  
 "䠩2".    ⨬ ᮧ ࢮ ⨫,
室 ᯥ ⨪ 訡 (⠪,    ९-
 ᪠,   室 䠩,   ..).  
  ஢ઠ ࠢ쭮 ᫠  ࠬ஢,    
 ப.  砫 ⪮  ᠭ  ணࠬ  
ଥ ᥢ. 

     Copy (File1,File2)
     (
	   e᫨ ( 뫮  ஢ 2 㬥)
	       ᮮ饭  訡  室 

	   ᫨ ( 㤠  䠩 1)
	       ᮮ饭  訡  室 

	   ᫨ ( 㤠 ᮧ 䠩 2)
	       ᮮ饭  訡  室 

	    ( 祭 䠩 1) (

		       让 ᮪ 
		      䠩 1     䠩 2; 

		      ᫨ (ந諠 - 訡)
			   ᮮ饭  訡  室

	   )

	    䠩;
     )	

      ।⠢ ணࠬ    믮  樨
஢. 

     #include "bdscio.h" /* ⠭ 䠩  */
     #include "types.h" /*    */

     #define BufSects 64 /* ਧ  64 ᥪ஢
			      */

     fd FD1,FD2; /* 䠩 ਯ   䠩-
			     */

     byte Buffer[BufSects * SecSiz]; /*  । */ 

     Main(ArgC,ArgV)
     int ArgC; /* 稪 㬥⮢ */
     char *ArgV[]; /*  㬥⮢ */
     {
	int OkSects; /* ६ ६ */
			  /* 㡥,   ஢ 2
			     㬥 */
	if (ArgC!=3)
	PrErr("맮: A>copy Filel File2 <>\n"); 

	/* ⠥  䠩; ࢥ 
	   砥 訡 */ 

	if ((FD1 = Open(ArgV[1],0)) == Error)
	PrErr("  䠩 %s\n",ArgV[1]); 

	/* ⠥ ᮧ ன 䠩;
	   ࢥ  砥 訡 */ 

	if ((FD2 = Creat(ArgV[2])) == Error)
	PrErr(" ᮧ 䠩 %s\n",ArgV[2]);
			 
	 /* ᥩ  ⮢ 뫠 */ 

	while (OkSects = Read(FD1,Buffer,BufSects)) {
		 if (OkSects == Error)
		 PrErr("訡 ⥭\n"); 
		 if (Write(FD2,Buffer,OkSects) != OkSects)
		 PrErr("訡 \n");
	} 

	/* ஢ 襭. ⥯ ஥ 䠩 */ 

	Close(FD1); 

	if (Close(FD2) == Error)
	PrErr(" 㤠  䠩 %s\n",ArgV[2]); 

	PrintF("஢ 襭\n");
	{ 

	PrErr(Format,Arg) /* 뢮 ᮮ饭  訡 
	{		     ४饭 ࠡ */
	PrintF(Format,Arg); 

	FAbort(FD2); /* ᢮ ਯ 䠩 
			      ஢ १ 䠩-
			       権 */
	Exit(); /*   CP/M */
	} 

        ᬮਬ  ணࠬ  ஡.	砫
 :  室 䠩 ਯ 	
䠩, ᯮ㥬   ஢  	让  ᨢ
 ਧ樨 , ⠪  뫠  䠩  ࠧ-
  .   ,   ࠧ  ᥪ-
 (SecSiz, ।  dscio.h), 㬭  ᫮ -
ਧ㥬 ᥪ஢ (⠭ BufSects, ।   砫
ணࠬ). 
      㭪樨 Main  ० ᥣ 㡥,   
ப  ࠢ쭮 ᫮ ࠬ஢.      ࠬ
"ArgC", । ⮬ ६ 믮  Main,  ᥣ
ࠢ   ࠬ஢  1,  ஢塞, ࠢ  
 ६ (.. 뫮    ࠬ). ᫨ ArgC   -
 ६,  뢠 PrErr, ⮡ 뢥 ᮮ饭   訡
 ࢠ ணࠬ. PrErr  ।  ᢮  㬥	㭪樨
PrintF, ४頥 樨    室  䠩    頥
ࠢ   ஢. 
     ᫨ ஢ઠ ArgC ந ᯥ譮, ⠫ ६ -
஡  䠩. 騩  뢠  䠩  
⥭,  䠩 ਯ, 饭 Open,    -
६ "FD1"  뢠 ⠭ ணࠬ,	᫨  ந諠
訡  믮 Open.   	ᤥ  "  宬"
  ᫨⥫ ࠦ ; 
     ० ᥣ 믮 맮  Open,  ⥬  饭
Open 祭 ᢠ  ६  "FD1"	  ந
஢ઠ,  ࠢ   祭 ⠭ Error.  ᫨  -
祭  ࠢ Error,  䠩     ࠢ쭮  
ࠢ ३  ᫥饬 ;  ⨢  砥
믮 맮 PrErr.  室  䠩  믮
 ࠧ    맮 PrErr, ᫨ ⪠ ᮧ
䠩 頥 祭 Error. 
     த  ⮢⥫  ய,    
஢  (-).  ࠧ  砫 横 whi-
le  ⠥ ⮫쪮     室 䠩, ᪮-
  ( BufSects ᥪ஢). 㭪 Read 頥  ᫮
ᯥ譮 ⠭ ᥪ஢;       0  (-
 " 䠩")  ᫠ 訢 ᥪ஢ (	 
砥 BufSects) , ஬ ⮣,   砥  娩  ⢨
(뫠  ᪮  ..), ਭ 祭  Error.
ᨬ  ⮣,  祭 饭,	o  ᢠ-
 ६ "OkSects"  쭥襣 ᯮ짮.  -
砥,   ࠢ ,  砥 EOF, ந室 -
室  横 while.  ⨢ 砥,  室  横   -
⠥  ,  ⮫쪮  뫨 ⠭. ०
ᥣ  ⨬ 㡥,   ந諮  㡮 訡-
;  ⮣ ந ஢ઠ ⮣,  뫮    ணࠬ
Read 饭 祭 Error. ᫨ 訡 , 뢠  Wri-
te, ⮡    室 䠩. ᫨  㤠  -
 筮  ᫮ ᥪ஢,   ⥫ ,  
뤠 ᮮ饭  訡 (設⢮ 訡		뢠-
 ९ ᪠). ᫨ Write 蠥  ᯥ譮,  
頥  砫 横  ⠥    ஥
⢮ .   த    ,  
  ⠭  ᠭ  ,  ⮬	砥	㭪
Read 頥   믮 室  横 while. 
     ᫥,  室 ᤥ -   䠩; 
⮬   㡥,  䠩   ࠢ쭮. 

	㭪樨 ਧ /뢮 䠩
        

     ࢨ 㭪樨 /뢮, ।⠢   ।-
饬 㭪,  ,   室  㫨஢
訬  , ᪠,  砥 ᮧ   䠩-
.  ᫮ ࠡ  묨 ந쭮 ࠧ.  -
ᬮਬ, ਬ,  ⥪: 窠,    
ASC II,    ࠧ 	1-    (  砥
⮩ ப, ।⠢ ⮫쪮 騬 㫥)   130
⮢   .  ⮤ ⥭    ⥪-
⮢ 祪  䠩   䠩  㤥  祭    
ࠡ⪨ ⥪.  쭮 砥     ⥫	맢
 㭪, 뫠  - 䠩 ਯ  
㪠⥫  ப ⥪   㭪  窨 ⥪-
  䠩, ᫥  ᫥ ᠭ 窮. , -
 । 室 ६        ࠧ,
 뢠 窠, 뫮  , ᫨     -
 ਧ஢   祪  뢠       
ࠧ   . A筮,   㭪 
⥭ ⥪⮢ ப  䠩  ;   让 -
 㢥 ந⥫쭮, ᫨    㤥
ࠢ 㭪樥 ⥭ ⥪⮢ 窨, ᫥⢨  祣
⨢ ᪮ ᮪  㬠.  㭪樨  FPuts  
FGetS ⢨⥫쭮   ⠭⭮ ⥪.
     ᭮ ⨥ ਧ /뢮 -  -
, 뢠 " /뢮".  ⮩  
- 让 ᨢ char, ⮡  ࠭  ।  ,  
᪮쪮 㪠⥫  ਯ஢,  ⮡  ,  "  -
室"  ᨢ  ,  :  䠩  ਯ-
, ⮡ ஢ 䠩  ࢨ 権  -
/뢮, 㪠⥫ 樨  ᨢ , ⮡  ,  
  ᠭ ᫥騩 , 稪,  㪠뢠,
᪮쪮 ⮢   ᢮  ࠭⢠  (	-
  ⮣, 뢠   뢠) ⠫  ⮣,
  室 । ⥭     -
, ,  祭, ᯮ⥫  ⮢,   -
ন ࠧࠧ ଠ, ਬ, ᯮ   -
     뢮.  㭪樨	ਧ  -
/뢮 ᯮ 㪠⥫   /뢮,   -
䨪 ࠡ뢠 䠩,   ६,  ࢨ -
樨 /뢮 䠩 ᯮ 䠩 ਯ. 
        㭪権,  믮  樨    -
/뢮  䠩    (.. char). 㣨	-
 㭪樨 /뢮 (⠪,  FPuts  FGetS  )  -
 ᢮ ࠡ, ᯮ   "᭮" 㭪権.
      ⥭ 䠩  㭪樨 FOpen, GetC,  	FClose.
FOpen 뢠, ⮡  㦥 騩 ᪮ 䠩,
樨   ஬ /뢮, ।⠢  -
⥫,  樨    祭   䠩-
. GetC     ,   	⮬  
 , ᫨  ,  頥 ᯥ樠쭮  -
祭 EOF (-1), o ⨣ 䨧᪨  䠩.  FClose
뢠 䠩, 樨㥬  ஬ /뢮,    ᢮-
   ᯮ짮  㣨 䠩. 
        䠩  ।祭	㭪樨  FCreat,  Puts,
FFlush  FClose. FCreat ᮧ  䠩   ⮢  ᮮ⢥-
   /뢮  祭  室
䠩.  뢠   ।⢮ 맮 PutC, 
 ;  맮 PutC 뢠  ,  -
 뢠  .      ᠭ    䠩,
FClose "९ ⨣⮥", 뢠  樨㥬  䠩.
 䠩,   , FClose ०	ᥣ  뢠
FFlush, ⮡  ("flush") ᮤন   -
 /뢮  ᪮ 䠩,  ⮣   . 
     ⢥묨 㭪ﬨ,  ᠬ 뢠   -
 ,  GetC  PutC; ⠪  㭪樨,    FGetS,
FPuts, FPrintF  .. 믮   ⥭   GetC
 PutC. 
     ⥫쭮 ᬮ७  䠩	bdscio.h  -
뢠,  ᫮ ᥪ஢, ᯮ㥬    ਧ樨,  
㬮砭 ࠢ 8    祭     -
⥫  ⨬쭮 ࠡ  ࠧ ⥬.  -
, ᫨  ᯮ BDS C  ⥬ CP/M  ଠ⮬  -
, ᥪ ண  ࠧ 1024-, ⮣  ਧ樨
쬨 1024-⮢ ᥪ஢, 믮塞 㭪ﬨ  ਧ-
 /뢮,  室,   ਬ	-
樨 1 ᥪ   ,  뢠  -
  ᪮ 믮.    ⥬ CP/M,  ࠡ
 8" ᪥⠬  128-⮢묨 ᥪࠬ, ਭ    㬮-
砭 ਧ  1 ⢨⥫쭮 ᪮ . 
      ᬮਬ  ਬ.    ணࠬ	뢮
⥪⮢ 䠩  ᮫,   ப      
 ஭:

     /*
     pnum.c: ணࠬ  뢮  ᮫  ⥪⮢  䠩
	      ⮬᪮ 樥 ஢ ப. */

     #include "bdscio.h"
     #include "types.h" 

     Main(ArgC,ArgV)
     char *ArgV[];
     {
     file IBuf; /*  /뢮 */
     char LinBuf [MaxLine]; /* ६   ப */
     int LineNo; /*  窨 */ 

     if (ArgC!=2) { /* 㡥,  䠩  */
	  PrintF("  :A>pnum filename <>\n");
	  Exit ();
     } 

     if (FOpen (ArgV[1],IBuf) == Error ) {
	  PrintF("  %s\n", ArgV {1};
	  Exit ();
     } 

     LineNo=1; /* 樠  ப */ 

     while (FGetS(LinBuf,IBuf))
     PrintF ("%3d: %s",LineNo++,LinBuf);

     fclose(IBuf);
     } 

      IBuf ᯥ稢     /뢮
 ᯮ짮  FOpen, GetC, FClose.
     ᫥ ஢ન ᫠ 㬥⮢      ᯥ-
 䠩  ,  ॠ쭠 ࠡ ந室  
⮬  while. 㭪 FGetS ⠥ ப ⥪  
䠩  頥   ᨢ LinBuf.   ,   -
  䠩, FGetS 㤥   㫥   祭
(True),  ⥫  while 㤥 ࠡ뢠. ⥫  -
⮨   맮 PrintF,  ஬ ⠥ ⥪騩  -
 窨,   ᫥  稥,  ஡  	⥪
ப ⥪. ᫥ ᯮ짮 祭 LineNo,   㢥-
稢  1 (஬ ++)  ᫥饩 樨.   -
뢠   믮   ,  FGetS  頥
;  ⮩ 窥 横 while ४頥   FClose  蠥
ࠡ ணࠬ. 
      ⢥ ᫥ ਬ - ணࠬ  ࠧ鸞 ண-
ࠬ-䨫஢. 筮 ணࠬ-䨫 뢠 室  䠩,
믮 类 த ८ࠧ    	뢠  -
   室 䠩. ८ࠧ      -
쭮 ᫮묨 ( )  ਢ묨, ਬ, -
ॢ 室 䠩  孨 ॣ.    ⮨  -
 ᥩ 쭮 ᮪,   ஥ ६ ⫮
ᬮ७ -   ࠧ६  ணࠬ  ॢ  
孨 ॣ.

     /*
     upper.c: ணࠬ  ८ࠧ ந쭮 室-
	       ⥪⮢ 䠩  孨 ॣ */ 

     #include "bdscio.h"
     #include "types.h" 

     Main (ArgC,ArgV)
     char *ArgV[];
     {
     file IBuf,OBuf;
     int c; 

     if (ArgC=3) {
	PrintF("맮: A>upper <筨> <ਥ> <>\n");
	Exit ();
     } 

     if (FOpen (ArgV[1], IBuf) == Error) {
	PrintF ("   %s\n", ArgV [1]);
	Exit ();
     } 

     if (FCreat (ArgV [2], OBuf ==Error) {
	PrintF ("  ᮧ %s\n", ArgV [2]);
	Exit ();
     } 

     while ((c = GetC (IBuf))=EOF&&c=CPMEOF) {
	if (PutC (ToUper(c), OBuf) == Error)
	PrintF ("訡 ; , ⭮, \n");
	Exit ();
     } 

     PutC (CPMEOF, OBuf); 

     FClose (OBuf); 
     FClose (IBuf);
     } 

       ࠧ  	  ਧ  䠩    -
/뢮: 室 䠩  室 䠩. ࢠ   -  ஢-
, 뫮   ࠢ쭮 ᫮ ࠬ஢    
ப.    ࠬ:  	饣  室
䠩   室 䠩,  室 ᮧ.  ⥬
뢠 FOpen  FCreat, ⮡    ᮧ    䠩
 ਧ /뢮. ᫨   㤠,  室  
᭮ 横,  ࠡ 稭. 
       樨 横       室-
 䠩  ࠢ   묨 祭ﬨ -
 ⥪⮢ 䠩: EOF  CPMEOF. 筮 ᫥  ⥪⮢
䠩   ᨬ CPMEOF (control-z).    ⥪-
⮢ ।    CPMEOF     䠩,  ᫨
䠩 稢 筮   ࠭  ᥪ;	  ⮬  砥
CPMEOF   㤥 祭,       䠩
㦭 믮 ࠢ  祭 䨧᪮   䠩
(EOF). 㤭, 맢 ⨬ 쭮 ⠭.
     祭 EOF, 饭 GetC,  -1,    
 ।⠢  16-⮢ 祭, .. ६ char
 BDS C    ⥫  祭.  ⮬  -
 ""   int   char  	  ᠭ
ணࠬ; ᫨  뫠  	char,  ⮣  १
ࠦ  

     c = GetC (IOBuf); 

     㤥  ⨯ char,      㤥  ࠢ  EOF.
᫨ GetC  EOF, "c"  祭 255  (-
 char  8    ⮢  祭  EOF).  ⮬  ""  -
,  int,  ࠢ  EOF  .  ࠭,
⠪  "c" ᯮ  ணࠬ  ࠭    뫮
   ,  ६ ⨯ char.  ᠬ  
 ᯮᮡ  㭨ᠫ쭮: ᫨  EOF   ᫮-
 ࠦ 㯮ॡ 255, "" ᫥ ,  char  
ணࠬ 㤥 ࠡ.  ᪫祭 ⮣ ,   
室 䠩   0ffh (筮 255). ᫨  
㢥७,   䠩  0ffh-⮢,  ⨬,  -
  ᪫祭.  ,   ਫ,  
䨫樨   ਬ ⮫쪮	  ⥪⮢	䠩.
⨬   ४ ࠡ,     䠩  
 ff? , 室 ⮤  ᠬ 騬. 
     ।,   䠩  ⨫,   ࠡ  -
砥 ⥫  while.   ᯮ㥬 ToUpper, ⮡
८ࠧ ᨬ, 祭  GetC,  孨 ॣ,  
PutC, ⮡  祭   室 䠩.  믮-
 ४頥, ᫨ PutC 頥 Error.
      ⮫쪮 㦥 ᫮ " 䠩",  뢠
  室 䠩 ᨬ CPMEOF (control-z).    䨫
ᠭ ⠪,  CPMEOF 㤥   室  䠩  -
ᨬ  ⮣, 訫 室 䠩 ᨬ CPMEOF,  
. , FClose ᯮ, ⮡  室   -
室 䠩.  
訫 室 䠩 ᨬ CPMEOF,  
. , 