. 31
.    3. ⠭⭠ ⥪
                     3
              -------------

   ⠭⭠ ⥪  BDS-C    CP/ . ⪮ ᠭ 㭪権

      BDS-C  䠩  DEFF.CRL    DEFF2.CRL  ঠ ' 
⠭⭮ ⥪.   ᮡ࠭  -㭪権   CRL-
 ଠ, 㯭   -ணࠬ.  CLINK  ⮬᪨  
䠩 ᫥ ᪠  㣨  CRL- 䠩,  㪠   ப.
⮬, 㭪樨,  ।  室 䠩   ⠪   
 㭪樨, ४뢠  ᨨ, ..  CLINK  室 
ᨨ । ᬮ஬ ⥪.

    ਢ 筥  ᭮ 㭪権  DEFF.CRL    DEFF2.CRL   
㭪 ᠭ ᫮᭮   - 樨, ᯮ짮  
樨 ⮣,  ᠭ  㭪権    -ணࠬ.
  ᯥ稢,   鸞,  ଠ樥  頥 
㭪 祭 ( ᫨ ,   ⨯)   ⨯  ࠬ
㭪樨.  ᪮쪮 ࠢ: ᫨ 㭪 ਢ  㪠 ⨯, 
  頥 祭 ( ਬ,  EXIT    POKE    祭).
ଠ ࠬ, 騥  ᠭ, ࠧ㬥 騬 ⨯
 INT,      ᯮ ⮫쪮 訩  ࠬ  
㭪樨  । 祭 ⨯   CHAR.  砫,   ᥣ 
 ⨯ ଠ쭮 ࠬ: 㪠⥫      
ᨬ쭮 ?   ⠩ । ᨬ ६  ࠨ,
饣 16- 㪠⥫ , 㬠   㤥 ࠢ쭮
ࠡ,   ᠭ ⨯  뢠饩 ணࠬ.

    ⮫쪮 ᪮쪮 砥,  室 뢠 
㭪樨 ।  ᯮ짮  -ணࠬ.  砩,  㭪
 ⨯, ⫨   INT,   맮 㭪樨 ᯮ  ࠦ,  ஬
⨯ 頥 祭  ⫨   INT   筮 ࠡ⪥
ࠦ ( ਬ, ᭠ 䬥⨪). 让   ,
 ⢨⥫쭮 室 뢠 㭪樨;    襭
 祭  ⨫  ⨢.

    DEFF.CRL  ᮤন  -㭪樨   STDLIB1.C    STDLIB2.C. DEFF2.CRL 
 ন  ᥬ 㭪樨   DEFF2A.CSM, DEFF2B.CSM    DEFF2C.CSM
(A ᥬ஢    CASM).

     ਢ ⪮ ᠭ  ᭮ 㭪権,  
 DEFF.CRL    DEFF2.CRL.
.PA

.HE    3. ⠭⭠ ⥪. 㭪樨 饣 祭
   3.1  㭪樨 饣 祭

 CHAR CSW() 
     頥 ⮢ 祭 (0-255) ॣ ४祭 ᮫
    ( 0 XFF    ⥬)

 XIT()
     뢠   䠩  室  믮饩 ணࠬ,
    믮 稩   CP/M.    ⮬᪮ 맮  FLUSH
      䠩, 묨  ஢ 뢮.

 INT BDOS(C,DE)
     뢠  室 ⠭⭮  BDOS- ⥬ ( 0005 H   設⢥
    ⥬), ⠭ ॣ   祭   ॣ஢   DE  
    祭  DE.
     頥 16-⭮ 祭, 頥  BDOS   ॣ  HL.  
     CP/M  ⥬ 訩   祭, 頥  BDOS   ॣ
     A, A  訩  - 祭  ॣ  ( 0  8- 祭).
     ਫ "ࠧ 砭"  筥 ᮢ⨬
       CP/M  ⥬ (ਬ,  SDOS).

CHAR BIOS(N,C)
     뢠  N-  室 ⠡  室  BIOS,    N=0   ࢮ
    室 ( BOOT), N=1   ண 室 ( WBOOT), N=3   쥣 室    
    ( CONST)   .., ⠭ ॣ஢   BC   祭  C.
     ⮬  祭, 饭  BIOS   ॣ  A.
     ⨬,  㭪 宫  ( N=0)  䠪᪨   
     ᯮ짮, ᪮  ⮬ 室 㤥  
    ᮫    ࠧ襭 ⥬.
     맮  BIOS,  訢騥  A   ॣ஢   DE  
    騥 १  ॣ  HL.    맮 ᯮ 
    㭪  BIOSH.

UNSIGNED BIOSH(N,BC,DE)
     뢠  N-  室 ⠡  室  BIOS,  ⠭ ॣ
     BC   祭  BC   ॣ  DE   祭  DE.  ⮬ 
    祭, 饭  BIOS   ॣ  HL.

CHAR PEEK(N)
     頥 ᮤন   ᮬ  N.  ⨬,   ਬ,
     ॡ ᬮ७ ᫥⥫쭮 ⮢,  䥪⨢
    ᯮ짮 㪠⥫ ᨬ, 祬  PEEK.   㭪 ।祭 
    । ਬ,  㤭⥫쭮 뢠 㪠⥫, ᢠ
       ᯮ짮 ᢥ   .

 POKE(N,B)
      訥 8     祩   ᮬ .   믮
     䥪⨢, ᯮ 㪠⥫,  
                  * N=B;
    (   N   㪠⥫  ᨬ)

 INP(N)
     頥 8-⭮ 祭, 饥  室   N.   
       ᯮ 㭪  PEEK.


OUTP(N,B)
      室   N  뢮 8-⭮ 祭  B.   뢮   
     ᯮ 㭪  POOK.

PAUSE()
       横,   ᮫  㤥   ᨬ.  ᨬ
     ࠥ; ।  ᯮ짮  PAUSE  室 맢
    㭪  GETCHAR     ᮫. 頥 祭 .

 SLEEP(N)
      (ࠡ⠥ 宫)  N/20  ᥪ㭤   4 ,   N/10  ᥪ㭤
      2 . ⢥ ᯮᮡ ࢠ ࠭ ६ - 
    < CTRL>C,   ᭨ ணࠬ  ୥   ஢. 
    頥 祭 .

 CALL(ADDR,A,H,B,D)
     뢠 設 ணࠬ    ADDR,  ⠭ ॣ 
    ᫥騬 ࠧ:
              HL <-- H
              A <-- A
             BC <-- B
             DE <-- D
     頥 祭, ⠭ ணࠬ  ॣ  HL.
     ணࠬ 易 ন ⥪ 樯.

 CHAR CALLA(ADDR,A,H,B,D)
      㭪樨  CALL,   ᪫祭 १,   頥
    ணࠬ  ॣ  ( ॣ஢  HL).

INT ABS(N)
     頥 ᮫⭮ 祭  N.

INT MAX(N1,N2)
     頥 襥   ᥫ

 INT MIN(N1,N2)
     頥 襥   ᥫ.

 SRAND(N)
     ᫨  N  ⫨筮  , 㭪 樠  ᥢ砩
    ᥫ, ⠭ ७ 稪  祭  N.
    E   N=0,   㭪 뢮 ᮮ饭, 饥 짮⥫  < ET>,
      稭 ७ .  짮⥫  , ⥪饥
    祭 稪 ᯮ  樠樨 . ,
     짮⥫, ; ⮢ ᮫ 뢠.

 SRANDL(STRING)
CHAR *STRING;
       SRAND(0),  ஬ ᮮ饭 " HIT RETURN AFTER A FEW SECONDS", 㪠
    ப ᯮ  ᪠. 
     ⫨稥   SRAND   ᨬ  롨ࠥ; 㦭 믮  GETCHAR
       ᨬ /  ⮢ ᮫.

 INT RAND()
     頥 ᫥饥 祭 ( : 0 <  RAND() < 32768 )  

    ᫥⥫쭮 ᥢ砩 ᥫ, 樠஢ 㭪ﬨ
     SRAND    SRANDL.

NRAND(-1,S1,S2,S3)
NRAND(0,PROMPT-STRING)
INT NRAND(1)
     , 襣 ⢠,  砩 ᥫ, ᠭ ஬
    㫥 ᮬ  樨   CDC 6600.  堭 樠樨
        ᮢ⨬  ᮣ襭ﬨ  SRAND    SRANDL.
     ࢠ ଠ ⠭ ७ 48- 稪 ࠢ 48 ⠬
    , 㪠   S1, S2    S3 ( 楫  ).
     ଠ ᯮ   SRANDL:  ப  PROMT-STRING  뢮 
    ᮫, ⥬ 設   짮⥫, ﭭ 騢
    ७ 16- 稪. ᫥  ᨬ 祭 稪
      48- ॣ. ⨬,  ᮫   頥
    (ॡ  GETCHAR).
     ᫥ ଠ 頥 । 砩 ᫮      
    0 <  NRAND(1) < 32768.  ⨬,  ७ 稪  NRAND  ⤥ 
    稪, ᯮ㥬  SRAND, SRANDL    RAND,   ᯮ 
    32  , 㥬   믮 䨪஬  RSEED.
    NRAND   ᢮ ७ 㯭 稪.

 SETMEM(ADDR,COUNT,BYTE)
CHAR BYTE, *ADDR;
        COUNT  ⮢ , 稭    ADDR,  祭  BYTE.
      䥪⨢  ன 樠樨 ᨢ   ⥩.

 MOVMEM(SOURCE,DEST,COUNT)
CHAR *SOURCE,*DEST;
     뫠     COUNT  ⮢   SOURCE    DEST.
      㤥 ࠢ쭮 ࠡ   ᯮ 室  ਭ饩
    ⥩, ⮬᪨ ।,  믮 뫪 :  砫
     砫     .  믮   Z-80  ᯮ 
    "뫪 ".  믮  8080  8085 ᯮ 
    .   ந室 ⮬᪨.

 QSORT(BASE,NEL,WIDTH,COMPAR)
CHAR *BASE;
INT (*COMPAR)();
     ந ஢ 襫  , 稭   BASE,  ᮤঠ
     NEL  ⮢    WIDTH  ⮢.  COMPAR    㪠⥫
    㭪樨   㪠⥫ (ਬ,  X    Y),   頥
         1 ᫨ * X > *Y
        -1  ᫨ * X < *Y
         0  ᫨ * X == *Y.
        饬 浪.

 INT EXEC(PROG)
CHAR *PROG;
     뢠 (㦠  믮) ணࠬ  PROG.COM.
    PROG    㪠⥫ ப, ᮤঠ饩  뢠 䠩 
    稢饩 㫥 (    ⢮ . COM).  ப
    ⠭ (⠪  " FOO")   ਥ, ᪮  ॢ頥
     㪠⥫.
    ᫨ 믮塞 ணࠬ  ᣥ஢ A   -஬  ࠧ  

    譨 ६  뢠饩 ணࠬ,    ।஢
     樥  CLINK -   ࠧ饭  譨    .
     믮  EXEC  䠩    . ⨬묨 ᮢ묨
    ᠬ  ⮫쪮 譨 .
     訡 頥 -1,  ⮬,  稢 , 
    㤥 訡.

 INT EXECL(PROG,ARG1,ARG2,...,0)
CHAR *PROG,*ARG1,*ARG2,...;
      뢠  -ணࠬ  ।祩 ࠬ஢ १ 堭
     ARGC    ARGV. PROG    㪠⥫ 祭 㫥 ப,
    饩 뢠  COM- 䠩 (. COM      ),  
    㬥 ⠪   㪠⥫ ப, 襭 㫥. ᫥
    㬥   㫥.
     EXECL  ⠥ ᮧ  ப  묨 ࠬࠬ, 
    ࠡ⠥ ⠪,    짮⥫   ப  
      CP/ . ਬ, 
                EXECL("FOO", "BAR", "ZOT", 0)
     㤥  ⠪  䥪,    ப  CP/M
               A>FOO BAR ZOT <ET>
      ।⢥. ஥   CP/M   (⠪   DIR, ERA 
      ..)    맢   EXECL.
        ப, ᮧ   ப 㬥⮢, 
     ॢ 80 ᨬ. ᫨ ᮧ  ப ॢ蠥
     ,  ᮫ 뢥 ᮮ饭  ணࠬ 㤥 .
     訡 頥 -1.  

 EXECV(FILENAME,ARGVECTOR)
CHAR *FILENAME;
CHAR *ARGVECTOR[];
      㭪 ࠧ蠥 믮 뢠  ६ ᫮ 㬥⮢,
      EXECL,   ᪫祭 ⮣,  ⥪ ࠬ஢  
    ᨢ,     맮. ࠬ  ARGVECTOR    㪠⥫
    ᨢ  㪠⥫ ப,  ஬  㪠⥫ ப 㪠뢠
     । 㬥,  ᫥ 㪠⥫  㫥 祭
    (⫨饥  