.PN 1
.HE    1. .      
.FO  BDS C-.                        #      
                            1
                   --------------- 

                    

 
 1.1  


      BDS-C.     
  "C",     
    CP/.    BDS-C
  -    ,   
   . ,   
   ,   , 
      .
   
      ,      
,       , 
   .  BDS-C     
     ...    
  ,             
.


 1.2   

   
         
   " ".     
 ,        ,
  .       
        .
  ,   ,    
   ,     ,  .

         ,   
 BDS-C     ,     
 ,     : 
,       .  
          
  .


 1.3  


         BDS-C         
.     
       .  ,
     ,  
       BD SOFTWARE.

   BDS-C      .   
 8     BD SOFTWARE     
   . , BDS C USER'S GROUP 
            
,       
.      ;    
    .  


 1.4      ...


        ,    
    (    
      ,   , 
        
),     ,   
.     BDS-C  
        BDS-C  
-  BD SOFTWARE.      
     C   .

          ,  
      ,    .
         
 BDS-C    - (   !). ,O,
    ,     .


 1.5    


   BDS-C       C,
    UNIX  BELL LABORATORIES.   
8080/Z80 ,   CP/,     
 CP/M         (   
  ).

           
 ,     UNIX,  
 . BDS-C   ,   
  CP/   , ,   
     .

    ,    8080       ,
   PDP-11.  PDP-11(,   ,
    )  
  8080. , BDS-C     
    8080,  UNIX C  PDP-11;  
    8- ,   
,      -,  
 ,       .
,     .

   , BDS-C    (   )   
  ,      
   .  ,       
 ,       .


 1.6   

      ,  BDS-C, 
40-   CP/M 2..   , 
 ,   ( )    48 .

   BDS-C          
 ,      .    .
         
        CRL-,   , 
   , KA   CP/M.  
    ,       
  .      ,  : -
  ,      . 
              
   ,   .  ,
     ,   
.       
     ,   
       .



 1.7     1.5


                 !  BDS-C      
CP/M,  2.X.  ,    
/ CP/M 2.X,   CP/M 1.4 (   )
  . ,   CP/M 2.X  
BDS-C V1.46.

 1.7.1      

 1.7.1.1     
          ...

 1.7.1.2     
          ... 

 1.7.1.3     CC
          ...

 1.7.1.4     CLINK 
          ...

 1.7.2       
          ...

 1.7.3    
          ...

 1.7.4     
          ...


 1.8    :     


 1.8.1    
          ...

 1.8.2    
          ...

 1.8.3   
          ...

 1.8.4     
          ...

 1.8.5     
          ...

 1.8.6      1.4
          ...
.PA
.HE   1. .       
 1.9    


 1.9.1     


    BDS-C     :
     
     CC.COM        C- -  1
     CC2.COM       C- -  2
     CLINK.COM       C
     CLIB.COM      C-

      ,    :

     C.CCC             
     DEFF.CRL       ( )  
     DEFF2.CRL      

   CC.COM  CC2.COM    . CC  
  , ,     
,    CC2     
 CRL-. CRL (  C RELOCATABLE)  
 8080-     .

   , CLINK,  CRL-,   (MAIN) 
      CRL- (DEFF.CRL, DEFF2.CRL  DEFF3.CRL
)   .     
,  COM-.

.PA
.HE  1. .          
 1.9.2  
                   
    BDS-C    CP/M,    -
 .      ,
        .
  '     .

        MP/M II
      ----------------------

      BDS-C  MP/M II,    
    MPM2  1 (  
 0).    CCC.ASM,    ASM,
 LOAD  CCC.COM,    C.CCC.
 
 1.9.2.1   CC  CLINK

     -     
 - !

         CC.COM  
CLINK.COM,   ,    
 .    ,  DDT  SID 
 CC.COM  CLINK.COM  ,     S,
 <CTRL>C ,   SAVE CP/M,  
   .

      "NEXT" ,  DDT  SID, 
   SAVE      ,
  : ,     
      (, 380  3, 
 60 ).     1,     
 00 ( , 60   60,     
 380  80,   00).    ,  SAVE.

   CC.COM  CLINK.COM  O    
.     CC.COM  0155H,   CLINK.COM O
 0103H.    :
      
                                               

   +0                    FF ()
   +1                      FF ()
                
   +2          SUBMIT-           00 ( A)
   +3           (0  1)  01 () 
   +4                   00 ()

   ,       .

            
   " "  "  " CC 
CLINK.  CC   ,   ,
     #INCLUDE   ,   
 CC2.COM      ( , 
  ,   #INCLUDE   
    ).  CLINK   , 
  DEFF.CRL, DEFF2.CRL  DEFF3.CRL ( ),  C.CCC,
A T   CRL-,     CLINK,  
    ,     CRL-.

        0 K  , 1 
 B  .., A  FFH ,     
     .   
  0-31  ,   FF , 
      .   
    FFH,     V1.50
        ,   
         .

      ,   CP/M  
$$$.SUB,     SUBMIT.  
  ,     . 

   CLINK     SUBMIT-   ,  
  CC        -.  
     $$$.SUB   ,  
  CC  CLINK. ,     
 $$$.SUB      ,     
 01H  0FFH.

       ,  CC  CLINK,
        <CTRL>C. 
 ( ),         
 ,   <CTRL>C,   
      .   (),
      .     
 ,       
     .
 
    ()    CC  CLINK  
         
  -  .    
   CCP,    "" (FAKE) CP/M  ( 
   CROMI  CP/M ),    CCP   . 
 ,       
   ,   CC  CLINK   , 
 .        
     ,    
   .

   :     , 
  ,       
      .   
     ,     ,
      .
 
   ,  CC2.COM    ,   CC.COM  
     .


 1.9.2.2               

   CCC.ASM    ,   
 .   2  ,  
      
.

              ,  
              ,       
         CP/M    .
                     
    NFCBS  CCC.ASM    , 
     .       8,
      ,   
    (     
 38 ).


 1.9.2.3   BDSCIO.H  HARDWARE.H

      / BDSCIO.H  
 NSECTS,      
  /. NSECTS  
 8,   1024      . 
   ,    1,    
NSECTS  8  1,       7/8 
    .
 
   -  ,    
/,   ..,     HARDWARE.H. 
  ,   , HARDWARE.H  
      
.


 1.9.3   


     ,     
    FOO.C.

     :

      A>CC FOO.C <ET>

           FOO.C 
     .    CC 
      CC2.COM. CC2  
,   ,     FOO.CRL.

       :

      A>CLINK FOO [   ] <ET>

        ,   FOO.COM, 
  

      A>FOO [ ] <ET>

        :     COM    
 CP/M   .     COM , 
  ,     
    ARGC  ARGV.

        .
.PA
.HE  1.           CC - 
 1.9.4  CC -                          


    :  CC . [  ] <ET>

         ,  
  C   "C". CC    
   ;        , 
CC      .C      
   .

           ( B:FOO.C), TO
        
   .  ,     
  #INCLUDE,    /, 
 ,    .

    <CTRL>C         
   ,  CC    
 ,       .

           , 
 .   :

 -P                 ,
                    
                 #DEFINE  #INCLUDE.    
                 : 
                    
               -P,      , 
                 . , 
                     CP/M "LIST" 
               <CTRL>P   CC.

-A D [N]        CC2.COM    N 
               D,     CC.  ,
              CC2        
                     
              .     "Z",    ".CCI" 
                      CC2,
                    CC2.

-D X             CRL-   X,    CC
               CC2    .     -A Z,
              TO -D    ,     CCI.
               ,    ,   
               .

-M XXXX             
              (C.CCC),      
                .
                      
                 (TPA) CP/M.    
                A, TO  
              C.CCC        
                ,    -L, -E  -T
                    CLINK. 
               2     
               '  BDS-C.
              C.CCC,       
              COM-,         ( 
              )   .
              CC2    ,  - 
               .

-E XXXX           () 
                   .   
                   ,    
                 ,  CLINK  
                .   -, 
                      (
              LHLD  SHLD)     .
                      .
             
              :       ;
                ,      -;
                    (  
              ).   " LAST CODE ADDRESS"  
               CLINK           
                    -.  
               , ,     , 
                   (CLINK B  ). 
              CC2    , -  
               .
                 -E CLINK   . ,
               CLINK   ,    ,
                ,    
              .

-               ,   . 
                    
                  
               ;     ,  
                  .
                 -,   
                ( ).    
               (  ) ' .
                     -  -.
                     -  
                 -.

-                SUBMIT ,  
              ,    . ,  CC
                SUBMIT-, -X     
              "$$$.SUB"       
                .  CC  , -X
                       
              .

-R X           X K    . 
                "OUT OF SYMBOL TABLE SPACE",   
                   .
              ,     "OUT OF MEMORY",  
                -R    
                    .  , 
                 .  ,  
                10.

-C               ,  
                ,   UNIX.C. ,   
              -C, ,  
              
                 /* PRINTF("HELLO");     /*  HELLO */

                .  -C  ,
                  /*  
              ,   .
                 

   O       63  ;
,         ,
     63 .
   
      CC      
    CCI-   (    
).

    :  20   .   
          .  
     N/20  ( N   
 )    ,     ...
 .   

   :

      A>FOOBAR.C -R12 -AB <ET>

 CC   FOOBAR.C,    
12, CC2     B.

      A>CC B:BELLE.C -P -O <ET>
 CC   A   BELLE.C   B.    
 #DEFINE  #INCLUDE   .   
 CC2         (.  1.9.2).
    .
.PA
.HE  1. .         CC2 -  
 1.9.5  CC2 -  

    :CC2   <ET>

    CC2       .  
  .CCI     .

        .CRL    .CCI
( ).

   CC2   .

      CC, ,     ,   
 .

    CC   CC2,  ,  CC2,
    ,      CC.
 CC2   (  ),  
   ,       
 ,  CC2  .    ,  
         CC2 , 
   ,    :

             

   0103       00        -      ,  CC2  ,
                                 .
   0104       01        -      ,   - (  ),
                                 1.
   0105-6     0100H     -        C.CCC  .

   0107-8            -         .

   0109       00        -      ,      ,
.HE   .                                             0.                                  

           
(  - ,   - ).

     CC2:  70   . 

       <CTRL>C   ,   
    .

   :  A>CC2 FOOBAR <ET>
.PA
.HE  1.           CLINK -   C
 1.9.6  CLINK -   C

    : CLINK  [     ] <ET>

    .CRL    (MAIN) ;   
-F    .CRL    CRL-     
.    -F   ,     
  , ..     
,      (   
 CRL-).       
    DEFF*.CRL   
 .    : DEFF.CRL,DEFF2.CRL
 DEFF3.CRL (  ).    ,
 ,       
,          , 
   .      DEFF3.CRL,  
          
DEFF.CRL  DEFF2.CRL.

    , CLINK     CRL-   ,
    (C.CCC  DEFF*.CRL) -      ,
    (.  1.9.2).     
   ,       CRL-,
   .   CRL-   
 / .

     CRL-      ,
        ,  
 (. 1.9.2).      
       ,     
       .

       CRL-   , CLINK
   .    
,     CRL-    .

   <CTRL>C        
   .

     CRL-    ,  
 .   :

-S                   .

-F ...            . CLINK
                     
                  ,     . 
                 M.    
                 ,    
                 . 
              ,       -L  L2.
 
-E XXXX             .
                    , 
               -    . 
              ,    , E 
               CLINK,   CRL-   -S    -,
               "DATA START AT:" ,  CLINK  
              .    ,     
                 ,    
              -  (     "DATA STARTING ADDRESS"
                ).
                  ,     
                   .
                CRL-    -,  CLINK
                ,     CC,
              ,   CRL-,     CLINK,
                   -    
                       ,
               COM-  .  CRL-    
                 -,    , 
                -  CLINK   , 
                 -  CC    .

-S                   .
                 ,     
              .   ,   ,  
               .

- XXXX             .
                COM-   LXI SP,XXXX.  CP/M
                 ,    
                   .    
                 1   ,   .
                  O,   COM- 
              
                       LHLD +6    ;   BDOS
                       SPHL           ;  SP  BDOS

-O            COM- .COM.     ,
                   .  ,
                  .      
              ,  COM-      
              

-N              COM-   
                 (CCP) CP/M   
              .      2 ,  
                     
                . , -N    
               . ,      
              ,   NOBOOT   COM-; NOBOOT ,    
               ,   ,  
              L2,    CCP   .
              -N    -,     
                  -.

-W                   .SYM. 
                    
               ,   .  
                 SID   -Y 
                .

-Y           .SYM     
                   .
               -W  -Y      
                :
                  ( , 
                ,    
              ,   ),   
              -W      ,  
                  . ,  
               ,   -Y   
                   
                  .   
                  :   
                -W      -Y, 
                   , 
                     
                 .   
                ,  ..    ,
               .  ,   -Y   
               CLINK , ..         
                  CRL-,  
                  -Y.  ,  
               -Y      CRL-.
               ,   SYM-,  , 
                 ,    .
                    - Y 
                .   

-I XXXX            
              .       
               (   -V)    , 
                .    
               CCC.ASM      
               C.CCC   XXXX.      
                -  -    .

-V            ,     .  
                  ,  ,  
                       
                     ( 
              ),   ,   -M  CC.

-C D [N]       CLINK    (DEFF.CRL, DEFF2.CRL
              C.CCC , , DEFF3.CRL)   CRL-,  
               ,       
                (   ,   
                CRL-)   N  D.   
              ,     (.. 1.9.2).

-D [""]      , -D     COM-,
                ,    .  
                  ,    ,  
                  CCP  . 
              -D       , 
                  (..-D  
                 ).
                  -D   
                -N.

-R XXXX        XXXX ()    
              ( 600H).      
                    "REF TABLE OVERLOW".

   :

            >CLINK TED -S -T 6000 -O JOYCE  <ET>

   CLINK    TED.CRL,   , 
     TED.CRL     
DEFF.CRL, DEFF2.CRL ,  , DEFF3.CRL.   
  ,     6000, COM-
 JOYCE.COM
 
            A>CLINK B:LOIS 6/C:VICKY -F JANET -S <ET>
                 
      CLINK     B:LOIS.CRL  6/C:VICKY,
     JANET.CRL (  B, ,  ,
   LOIS.CRL,     ),
   (     , . .1.9.2),
    .     -, CLINK
         . 
COM- LOIS.CMD (  , ..    -), 
  .

            .     , 
 ,        
,    .   ,  CLINK 
       ,    
      COM-  ,
   ENDEXT()   . 
,    BDS-C  ,   (COMMON)
     UNIX C,    
       .   
,    ,  ( #INCLUDE) 
      .

.PA
.HE  1.           CLIB - C-
 1.9.7  CLIB - C-


    : CLIB <ET>

    CLIB  A)    CRL-,
) ,     , )  
CRL-, )   CRL-.

      CLIB,     CRL-:

   CRL-     -,  
    .    
 ,   CLINK   
.       , 
  . ,       
  .

      CRL-   ,  
       .   CRL- 
  64  (,     ),
      CRL- 
   CP/M (16 ).

       CRL-    2.

    CLIB     "FUNCTION BUFFER SIZE". 
 ,      . 
      .

    , CLIB   (*)   .

   CRL-    

      * OPEN  - - <ET>

        0  9,     
,    .      10 .
,       ,  CLIB 
   .

     (    )  

       * CLOSE - <ET>

    -      
 OPEN.        .BRL.
          
    ,    .

       .  , , 
  ,   .

    CRL- ,    (4 )  
.    ( APPEND, TRANSFER, RENAME, DELETE)
     ,    
      .  ,  
- ,      ,    ,
        .  
       ; 
 ' .

           
  

       * FILES <ET>

     CRL-      
 

       * LIST - <ET>

          CRL-.  
  ,      

     * TRANSFER -- -- - <>

          ,  
  .       *  ?,
   .  ,  
,  .

          
"-".    

      *EXTRACT - - <>

            
 ( ).    , 

      *APPEND - [ - ] <ET>

           ,    
 ;

      *APPEND - <>
 
        .

     -     ;  
   ,      .

     CRL-  

      *RENAME - - - <>

   ,      ,     
  .

     () CRL-, 
   
      * - <>

         -.CRL   M.  
  ,   ,     
 /,  . CLIB    
CRL-,    ,    CRL-   .

        

      *DELETE - - <ET>

        *  ?.    
   . ,     
    ,   ,    
. ,   CRL- ,      
 ,     ,    
       .

        ,  

      *HELP <ET>

    CLIB     ,  

      *QUIT <ET>

        ,  CLIB.

   :   CLIB    .

          ,    ,  
          
  .         
,  

      *QUIT - <ET>

             -,
    .

         ,     ,  
   ,      
       .   
 :     ,  
  CRL-. ,    ,  
  ,         ,
   ,      .   
  ,   ,     
,     .

         CLIB,   
    NEW.CRL   B:,    
DEFF.CRL,    "P":
      
        A>CLIB
        BD SOFTWARE C LIBRARIAN V1.50
        FUNCTION BUFFER SIZE = XXXXX BYTES
  
        *OPEN 0 DEFF
        *MAKE B:NEW
        *OPEN 1 NEW
        *TRANSFER 0 1 P*
        *CLOSE 1
        *QUIT
        (QUIT) ARE YOU SURE? Y

        A>
.PA
.HE  1.           CP/M SUBMIT-
 1.10  CP/M SUBMIT-

         - ( 
     ,  CC  CC2    
  ), CP/M SUBMIT-    
.   SUBMIT-, ,  
 -    (   
 CRL-   ):

       CC $1.C
       CLINK $1 -S
       $1

   ,       LIFE.C,   


       A>SUBMIT C LIFE <ET>
 
    (  ,  SUBMIT-  C.SUB)
.PA
.HE  1.            
 1.11                   


   1.   COM-  BDS-C    COM-
,    (  CP/M)   
    .   ,  
        ,
    .

   2. E   MP/M II,     
(CCC.ASM -> C.CCC)  "MPM2"  .   ,   
         -,    
     . ,   MP/M II, 
 BDS-C     ,    .

